florian
f68558b88c
* factored out TX86AsmOptimizer.OptPass2Imul
...
git-svn-id: trunk@35252 -
2017-01-06 22:25:24 +00:00
Jonas Maebe
a25ebbba3e
+ added volatility information to all memory references
...
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
2016-11-27 18:17:37 +00:00
yury
649823a246
* Removed unused vars.
...
git-svn-id: trunk@34405 -
2016-09-01 20:01:54 +00:00
florian
7f44774852
* i386 uses OptPass1And from aoptx86
...
git-svn-id: trunk@33936 -
2016-06-07 20:01:13 +00:00
florian
5e8e21c1be
* factored out OpPass2MOV code, x86-64 uses it as well now
...
git-svn-id: trunk@33932 -
2016-06-06 21:18:24 +00:00
florian
e56147ac6e
* integrated mov op mov -> op optimization in aoptx86
...
* isFoldableArithOp is in aoptx86 now
git-svn-id: trunk@33928 -
2016-06-06 21:18:18 +00:00
florian
ba54f7243e
* moved all i386 mov peephole optimization code into OptPass1MOV
...
git-svn-id: trunk@33908 -
2016-06-04 19:34:18 +00:00
florian
20807f4148
* factored out V<Op> optimizations into OptPass1VOP
...
* call OptPass1VOP also for i386
git-svn-id: trunk@33878 -
2016-06-01 20:49:35 +00:00
florian
bd54a11f1c
+ TX86AsmOptimizer.OptPass1VMOVAP for i386 and x86-64
...
+ new unit aoptutils which helpers for the assembler optimizer
git-svn-id: trunk@33587 -
2016-05-01 09:37:21 +00:00
florian
ec92bc3390
* case of identifiers fixed
...
* x86-64 uses also the mov $0,... -> xor optimization
git-svn-id: trunk@33553 -
2016-04-24 20:01:43 +00:00
florian
f0e75de730
* properly update allocation info of the involved register when carrying out an MovMovCmp2MovCmp optimization, resolves issue #30052
...
* few changed to make code more readable
git-svn-id: trunk@33551 -
2016-04-24 15:57:06 +00:00
florian
8d9f6bbe0b
* disable some debugging code which does not work anymore due to the unification of the peephole optimizer
...
git-svn-id: trunk@33546 -
2016-04-22 20:31:25 +00:00
florian
77b4709e7a
+ i386 compiler tracks now flag usage if needed, so the mov $0,reg -> xor reg,reg transformation can be enabled
...
git-svn-id: trunk@33545 -
2016-04-22 19:44:26 +00:00
florian
3c2dab9878
* i386 peephole assembler uses largely the common peephole optimizer infrastructure, the resulting code is besides a few improvements the same
...
git-svn-id: trunk@33542 -
2016-04-21 20:14:01 +00:00