mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 23:58:20 +00:00
Optimize llDumpList2String(expr, "") to (string)expr.
It works on all VMs and it's always a gain, so it's not worth adding an option to deactivate it.
This commit is contained in:
parent
b4d9d5bc8c
commit
b5994b79fe
1 changed files with 8 additions and 0 deletions
|
@ -1009,6 +1009,14 @@ class foldconst(object):
|
||||||
# Convert llGetListLength(expr) to (expr != [])
|
# Convert llGetListLength(expr) to (expr != [])
|
||||||
node = {'nt':'CONST', 't':'list', 'value':[]}
|
node = {'nt':'CONST', 't':'list', 'value':[]}
|
||||||
parent[index] = node = {'nt':'!=', 't':'list', 'ch':[child[0], node]}
|
parent[index] = node = {'nt':'!=', 't':'list', 'ch':[child[0], node]}
|
||||||
|
elif (node['name'] == 'llDumpList2String'
|
||||||
|
and child[1]['nt'] == 'CONST'
|
||||||
|
and child[1]['t'] in ('string', 'key')
|
||||||
|
and child[1]['value'] == u""):
|
||||||
|
# Convert llDumpList2String(expr, "") to (string)(expr)
|
||||||
|
del child[1]
|
||||||
|
node['nt'] = 'CAST'
|
||||||
|
del node['name']
|
||||||
elif SEFargs and 'SEF' in self.symtab[0][node['name']]:
|
elif SEFargs and 'SEF' in self.symtab[0][node['name']]:
|
||||||
# The function is marked as SEF in the symbol table, and the
|
# The function is marked as SEF in the symbol table, and the
|
||||||
# arguments are all side-effect-free. The result is SEF.
|
# arguments are all side-effect-free. The result is SEF.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue