libfirm
16 years agoDecompose Mul(x, 2**b + 2**a) into y = x + x << (b - a), y << a instead of y = x...
Christoph Mallon [Tue, 16 Oct 2007 20:57:43 +0000 (20:57 +0000)]
Decompose Mul(x, 2**b + 2**a) into y = x + x << (b - a), y << a instead of y = x << a, y + y << (b - a). This is beneficial for address mode generation.

[r16240]

16 years agoanother interesing case
Matthias Braun [Tue, 16 Oct 2007 18:49:50 +0000 (18:49 +0000)]
another interesing case

[r16239]

16 years agofix AM matcher seeing add x, x as value with scale 2
Matthias Braun [Tue, 16 Oct 2007 18:49:29 +0000 (18:49 +0000)]
fix AM matcher seeing add x, x as value with scale 2

[r16238]

16 years agounused functions removed
Michael Beck [Tue, 16 Oct 2007 14:38:36 +0000 (14:38 +0000)]
unused functions removed

[r16236]

16 years agoremoved unused got_lea attribute
Michael Beck [Tue, 16 Oct 2007 14:06:53 +0000 (14:06 +0000)]
removed unused got_lea attribute

[r16235]

16 years ago- removed identical is_downconv()
Michael Beck [Tue, 16 Oct 2007 13:55:59 +0000 (13:55 +0000)]
- removed identical is_downconv()
- used new ia32_skip_downconv()
- add ia32_prefix to global function

[r16234]

16 years ago0 constants don't modify flags anymore
Matthias Braun [Tue, 16 Oct 2007 13:50:08 +0000 (13:50 +0000)]
0 constants don't modify flags anymore

[r16233]

16 years ago- removed identical is_downconv()
Michael Beck [Tue, 16 Oct 2007 12:52:42 +0000 (12:52 +0000)]
- removed identical is_downconv()
- used new ia32_skip_downconv()
- add ia32_prefix to global function

[r16232]

16 years agoreduced memory usage
Michael Beck [Tue, 16 Oct 2007 12:37:49 +0000 (12:37 +0000)]
reduced memory usage

[r16231]

16 years agoadd doxygen comments
Michael Beck [Tue, 16 Oct 2007 12:37:10 +0000 (12:37 +0000)]
add doxygen comments

[r16230]

16 years agosome comments added
Michael Beck [Tue, 16 Oct 2007 11:45:48 +0000 (11:45 +0000)]
some comments added

[r16229]

16 years agoskip projs when comparings needed flags
Matthias Braun [Tue, 16 Oct 2007 00:24:15 +0000 (00:24 +0000)]
skip projs when comparings needed flags

[r16228]

16 years agono need for Conv_I2I8Bit for AM
Matthias Braun [Mon, 15 Oct 2007 23:36:53 +0000 (23:36 +0000)]
no need for Conv_I2I8Bit for AM

[r16227]

16 years agofix conv_conv optimisation, first optimize IncSP_IncSP then push pop
Matthias Braun [Mon, 15 Oct 2007 23:36:29 +0000 (23:36 +0000)]
fix conv_conv optimisation, first optimize IncSP_IncSP then push pop

[r16226]

16 years agoFix wrong assert condition. The assert could never trigger.
Christoph Mallon [Mon, 15 Oct 2007 23:08:02 +0000 (23:08 +0000)]
Fix wrong assert condition. The assert could never trigger.

[r16225]

16 years agoAllow loading of stack parameters with a different mode than the parameter mode....
Christoph Mallon [Mon, 15 Oct 2007 23:03:18 +0000 (23:03 +0000)]
Allow loading of stack parameters with a different mode than the parameter mode. This is useful for x86 where loading a char parameter as 32bit results in a shorter opcode.

[r16224]

16 years agoSkip unnecessary Convs before the shift count when transforming a shift operation.
Christoph Mallon [Mon, 15 Oct 2007 22:58:33 +0000 (22:58 +0000)]
Skip unnecessary Convs before the shift count when transforming a shift operation.

[r16223]

16 years agoUse match_arguments() in create_I2I_Conv().
Christoph Mallon [Mon, 15 Oct 2007 22:45:13 +0000 (22:45 +0000)]
Use match_arguments() in create_I2I_Conv().

[r16222]

16 years agomove lea_to_add into the peephole phase
Matthias Braun [Mon, 15 Oct 2007 19:31:46 +0000 (19:31 +0000)]
move lea_to_add into the peephole phase

[r16212]

16 years agofix problems with multispill/belady
Matthias Braun [Mon, 15 Oct 2007 18:53:02 +0000 (18:53 +0000)]
fix problems with multispill/belady

[r16211]

16 years agofix problems with multispill/belady
Matthias Braun [Mon, 15 Oct 2007 18:52:08 +0000 (18:52 +0000)]
fix problems with multispill/belady

[r16210]

16 years agomake ir_node *irn const for liveness_remove
Matthias Braun [Mon, 15 Oct 2007 18:51:46 +0000 (18:51 +0000)]
make ir_node *irn const for liveness_remove

[r16209]

16 years agoimprove peephole API, do IncSP stuff as peephole opts, add IncSP -4 -> Pop opt
Matthias Braun [Mon, 15 Oct 2007 18:51:25 +0000 (18:51 +0000)]
improve peephole API, do IncSP stuff as peephole opts, add IncSP -4 -> Pop opt

[r16208]

16 years agofehler96: tarval module calculates Shrs wrong for mode_Iu.
Christoph Mallon [Mon, 15 Oct 2007 17:54:55 +0000 (17:54 +0000)]
fehler96: tarval module calculates Shrs wrong for mode_Iu.

[r16207]

16 years agoAdapted to Matze's changes
Sebastian Hack [Mon, 15 Oct 2007 13:13:02 +0000 (13:13 +0000)]
Adapted to Matze's changes

[r16204]

16 years agoSmall changes in stat_ev names
Sebastian Hack [Mon, 15 Oct 2007 13:09:47 +0000 (13:09 +0000)]
Small changes in stat_ev names

[r16203]

16 years agorematerialized values are like reloads
Matthias Braun [Mon, 15 Oct 2007 11:21:01 +0000 (11:21 +0000)]
rematerialized values are like reloads

[r16202]

16 years agomorgan isn't there anymore
Matthias Braun [Sun, 14 Oct 2007 22:36:27 +0000 (22:36 +0000)]
morgan isn't there anymore

[r16201]

16 years agomore intelligent spill placement, should move spills out of loops in most cases
Matthias Braun [Sun, 14 Oct 2007 22:35:01 +0000 (22:35 +0000)]
more intelligent spill placement, should move spills out of loops in most cases

[r16200]

16 years agoremove morgan spiller, it's unused and the coming bespill changes won't support morga...
Matthias Braun [Sun, 14 Oct 2007 22:34:33 +0000 (22:34 +0000)]
remove morgan spiller, it's unused and the coming bespill changes won't support morgan anymore

[r16199]

16 years agoir_livecheck shows quadratic behaviour in number of users. Avoid some of the slowdown...
Matthias Braun [Sun, 14 Oct 2007 12:15:20 +0000 (12:15 +0000)]
ir_livecheck shows quadratic behaviour in number of users. Avoid some of the slowdown in practice by first checking other conditions before liveness

[r16198]

16 years agofix warning
Matthias Braun [Sun, 14 Oct 2007 11:14:08 +0000 (11:14 +0000)]
fix warning

[r16197]

16 years agofix struct returns for real now
Matthias Braun [Sun, 14 Oct 2007 11:04:59 +0000 (11:04 +0000)]
fix struct returns for real now

[r16196]

16 years agoused set_type_size_bytes() instead of *_bits() where possible
Michael Beck [Sat, 13 Oct 2007 14:35:18 +0000 (14:35 +0000)]
used set_type_size_bytes() instead of *_bits() where possible

[r16195]

16 years agosimpler
Matthias Braun [Sat, 13 Oct 2007 11:51:21 +0000 (11:51 +0000)]
simpler

[r16194]

16 years agofehler95 (entity size is stored in bits which provokes overflows in some cases)
Matthias Braun [Sat, 13 Oct 2007 11:50:52 +0000 (11:50 +0000)]
fehler95 (entity size is stored in bits which provokes overflows in some cases)

[r16193]

16 years agorehash changed mode_b nodes
Matthias Braun [Sat, 13 Oct 2007 10:37:01 +0000 (10:37 +0000)]
rehash changed mode_b nodes

[r16192]

16 years agoimprove and generalize handling of calls shrinking the stack on return
Matthias Braun [Fri, 12 Oct 2007 23:20:10 +0000 (23:20 +0000)]
improve and generalize handling of calls shrinking the stack on return

[r16186]

16 years agoimproved and fixed warnings
Matthias Braun [Fri, 12 Oct 2007 23:19:36 +0000 (23:19 +0000)]
improved and fixed warnings

[r16185]

16 years agofehler94
Matthias Braun [Fri, 12 Oct 2007 23:18:47 +0000 (23:18 +0000)]
fehler94

[r16184]

16 years agofixed/warnings make it possible to build without interprocedural view and enable...
Matthias Braun [Fri, 12 Oct 2007 20:40:45 +0000 (20:40 +0000)]
fixed/warnings make it possible to build without interprocedural view and enable that mode by default

[r16182]

16 years agofixed a bunch of warnings
Matthias Braun [Fri, 12 Oct 2007 20:40:03 +0000 (20:40 +0000)]
fixed a bunch of warnings

[r16181]

16 years agodon't worry about IP view in backend
Matthias Braun [Fri, 12 Oct 2007 20:02:38 +0000 (20:02 +0000)]
don't worry about IP view in backend

[r16178]

16 years agofix warnings
Matthias Braun [Fri, 12 Oct 2007 20:02:24 +0000 (20:02 +0000)]
fix warnings

[r16177]

16 years agoreenable conv skipping in address mode code
Matthias Braun [Fri, 12 Oct 2007 20:02:04 +0000 (20:02 +0000)]
reenable conv skipping in address mode code

[r16176]

16 years agoallow get_mode_all_one() for mode_b
Michael Beck [Thu, 11 Oct 2007 20:13:06 +0000 (20:13 +0000)]
allow get_mode_all_one() for mode_b

[r16157]

16 years agoProjs aren't scheduled anymore
Matthias Braun [Thu, 11 Oct 2007 16:12:44 +0000 (16:12 +0000)]
Projs aren't scheduled anymore

[r16155]

16 years agowe can use a simpler test again with fixed smaller_mode
Matthias Braun [Thu, 11 Oct 2007 16:12:24 +0000 (16:12 +0000)]
we can use a simpler test again with fixed smaller_mode

[r16154]

16 years agofix smaller mode
Matthias Braun [Thu, 11 Oct 2007 16:12:07 +0000 (16:12 +0000)]
fix smaller mode

[r16153]

16 years agowe can only remove Convs before Cmps if sign doesn't change
Matthias Braun [Thu, 11 Oct 2007 15:58:11 +0000 (15:58 +0000)]
we can only remove Convs before Cmps if sign doesn't change

[r16152]

16 years agofehler93
Matthias Braun [Thu, 11 Oct 2007 15:53:20 +0000 (15:53 +0000)]
fehler93

[r16151]

16 years agomove all constlike nodes to right for Cmps
Matthias Braun [Thu, 11 Oct 2007 15:07:03 +0000 (15:07 +0000)]
move all constlike nodes to right for Cmps

[r16150]

16 years agoremove Cast node
Michael Beck [Thu, 11 Oct 2007 14:38:27 +0000 (14:38 +0000)]
remove Cast node

[r16148]

16 years ago- fixed apply_binop_on_phi: need mode for Shift operations (fixes fehler92.c)
Michael Beck [Thu, 11 Oct 2007 10:05:18 +0000 (10:05 +0000)]
- fixed apply_binop_on_phi: need mode for Shift operations (fixes fehler92.c)
- added apply_conv_on_phi
- added transform_node_Rot: same as for other Shift operations
- added apply_unop_on_phi for Abs
-This line, and those below, will be ignored--

M    iropt.c

[r16146]

16 years agocount executed optimization
Michael Beck [Wed, 10 Oct 2007 15:13:28 +0000 (15:13 +0000)]
count executed optimization

[r16145]

16 years agofehler92
Matthias Braun [Wed, 10 Oct 2007 15:05:46 +0000 (15:05 +0000)]
fehler92

[r16144]

16 years agoConvI2I8Bit is also a transformed Load
Matthias Braun [Wed, 10 Oct 2007 14:10:50 +0000 (14:10 +0000)]
ConvI2I8Bit is also a transformed Load

[r16143]

16 years agoavoid some of the mode_b lowering related out-edge warnings
Matthias Braun [Wed, 10 Oct 2007 14:03:48 +0000 (14:03 +0000)]
avoid some of the mode_b lowering related out-edge warnings

[r16142]

16 years agoNo need to calculate liveness of NoMem
Matthias Braun [Wed, 10 Oct 2007 13:44:54 +0000 (13:44 +0000)]
No need to calculate liveness of NoMem

[r16141]

16 years ago"empty" blocks might still contain Pin nodes
Matthias Braun [Wed, 10 Oct 2007 13:44:32 +0000 (13:44 +0000)]
"empty" blocks might still contain Pin nodes

[r16140]

16 years agotypos fixed
Michael Beck [Wed, 10 Oct 2007 13:38:37 +0000 (13:38 +0000)]
typos fixed

[r16139]

16 years agoadded statistic events for Cmp optimizations
Michael Beck [Wed, 10 Oct 2007 13:38:05 +0000 (13:38 +0000)]
added statistic events for Cmp optimizations

[r16138]

16 years agotypo fixed
Michael Beck [Wed, 10 Oct 2007 13:07:00 +0000 (13:07 +0000)]
typo fixed

[r16137]

16 years agomore test added
Michael Beck [Wed, 10 Oct 2007 10:55:09 +0000 (10:55 +0000)]
more test added

[r16136]

16 years agoadded more cases for And/Or and Cmp, moved Const Upscale code to the right place
Michael Beck [Wed, 10 Oct 2007 10:54:57 +0000 (10:54 +0000)]
added more cases for And/Or and Cmp, moved Const Upscale code to the right place

[r16135]

16 years agomore test added
Michael Beck [Tue, 9 Oct 2007 16:31:37 +0000 (16:31 +0000)]
more test added

[r16134]

16 years agomoved the cast removed upwards; added cases for Shr, Shrs, Shrl --> And
Michael Beck [Tue, 9 Oct 2007 16:29:25 +0000 (16:29 +0000)]
moved the cast removed upwards; added cases for Shr, Shrs, Shrl --> And

[r16133]

16 years agotypo fixed
Michael Beck [Tue, 9 Oct 2007 11:57:23 +0000 (11:57 +0000)]
typo fixed

[r16131]

16 years agofehler91
Matthias Braun [Mon, 8 Oct 2007 22:44:54 +0000 (22:44 +0000)]
fehler91

[r16130]

16 years agoimprove mode/conv handling in backend (should result in less convs)
Matthias Braun [Mon, 8 Oct 2007 22:10:53 +0000 (22:10 +0000)]
improve mode/conv handling in backend (should result in less convs)

[r16129]

16 years agoTrivial fix of the manifestation problem
Sebastian Hack [Mon, 8 Oct 2007 20:32:27 +0000 (20:32 +0000)]
Trivial fix of the manifestation problem

[r16128]

16 years agono need for (strict-)conv before store
Matthias Braun [Mon, 8 Oct 2007 18:09:33 +0000 (18:09 +0000)]
no need for (strict-)conv before store

[r16127]

16 years agoremove unused R flags, mark vfld as rematerialisable
Matthias Braun [Mon, 8 Oct 2007 16:58:18 +0000 (16:58 +0000)]
remove unused R flags, mark vfld as rematerialisable

[r16126]

16 years agono strict conv necessary after load
Matthias Braun [Mon, 8 Oct 2007 16:36:29 +0000 (16:36 +0000)]
no strict conv necessary after load

[r16125]

16 years agosupport AM in IJmp and IMul1OP
Matthias Braun [Mon, 8 Oct 2007 13:12:46 +0000 (13:12 +0000)]
support AM in IJmp and IMul1OP

[r16124]

16 years agocleaned up, fixed and commented daemelspiller a bit
Matthias Braun [Mon, 8 Oct 2007 10:59:10 +0000 (10:59 +0000)]
cleaned up, fixed and commented daemelspiller a bit

[r16122]

16 years agoonly set pinned state when not already pinned
Matthias Braun [Sun, 7 Oct 2007 18:11:11 +0000 (18:11 +0000)]
only set pinned state when not already pinned

[r16119]

16 years agoCF backedges are enough for us
Matthias Braun [Sun, 7 Oct 2007 17:43:58 +0000 (17:43 +0000)]
CF backedges are enough for us

[r16118]

16 years agoadd initialization to supress warning
Michael Beck [Sun, 7 Oct 2007 17:15:10 +0000 (17:15 +0000)]
add initialization to supress warning
typos fixed

[r16117]

16 years agotestcase for strange loop depths in loopana
Matthias Braun [Sun, 7 Oct 2007 17:06:50 +0000 (17:06 +0000)]
testcase for strange loop depths in loopana

[r16116]

16 years agoparameter loads are floating
Matthias Braun [Sun, 7 Oct 2007 17:05:12 +0000 (17:05 +0000)]
parameter loads are floating

[r16115]

16 years agowe have to use the pinned state from the load when using AM, mark all AM supporting...
Matthias Braun [Sun, 7 Oct 2007 17:00:34 +0000 (17:00 +0000)]
we have to use the pinned state from the load when using AM, mark all AM supporting ops als exc_pinned

[r16114]

16 years agoRemove whitespace at EOL and empty lines at EOF.
Christoph Mallon [Sun, 7 Oct 2007 15:50:49 +0000 (15:50 +0000)]
Remove whitespace at EOL and empty lines at EOF.

[r16112]

16 years agoSimplify consumer_dom_dca().
Christoph Mallon [Sun, 7 Oct 2007 15:28:55 +0000 (15:28 +0000)]
Simplify consumer_dom_dca().

[r16111]

16 years agoCleanup: Remove trailing whitespace, get_irn_n(n, -1) -> get_nodes_block(n), get_irn_...
Christoph Mallon [Sun, 7 Oct 2007 15:25:43 +0000 (15:25 +0000)]
Cleanup: Remove trailing whitespace, get_irn_n(n, -1) -> get_nodes_block(n), get_irn_op(n) == op_FOO -> is_Foo(n).

[r16110]

16 years agoadd an option to disable calling convention optimisation
Matthias Braun [Sat, 6 Oct 2007 19:31:27 +0000 (19:31 +0000)]
add an option to disable calling convention optimisation

[r16108]

16 years agoemit a Begin and End marker around functions (usefull for scripts modifying the ...
Matthias Braun [Sat, 6 Oct 2007 19:31:08 +0000 (19:31 +0000)]
emit a Begin and End marker around functions (usefull for scripts modifying the .s file)

[r16107]

16 years agouse unknowns instead of Bads while constructing phis
Matthias Braun [Sat, 6 Oct 2007 17:05:20 +0000 (17:05 +0000)]
use unknowns instead of Bads while constructing phis

[r16106]

16 years agoreally disable CSE in backend, and add an assert about that in bespill.c
Matthias Braun [Sat, 6 Oct 2007 13:40:34 +0000 (13:40 +0000)]
really disable CSE in backend, and add an assert about that in bespill.c

[r16105]

16 years agomade parse_asm_constraint() static
Michael Beck [Fri, 5 Oct 2007 22:42:00 +0000 (22:42 +0000)]
made parse_asm_constraint() static

[r16103]

16 years agodoxygen comment added
Michael Beck [Fri, 5 Oct 2007 22:41:31 +0000 (22:41 +0000)]
doxygen comment added

[r16102]

16 years agopreliminary added missing *stat_ev_int()
Michael Beck [Fri, 5 Oct 2007 12:37:02 +0000 (12:37 +0000)]
preliminary added missing *stat_ev_int()

[r16099]

16 years agoA small (very small) optimization
Sebastian Hack [Fri, 5 Oct 2007 11:19:40 +0000 (11:19 +0000)]
A small (very small) optimization

[r16097]

16 years agoCosmetics
Sebastian Hack [Fri, 5 Oct 2007 11:19:02 +0000 (11:19 +0000)]
Cosmetics

[r16096]

16 years agofix negated set pnc with float compare problem
Matthias Braun [Thu, 4 Oct 2007 19:24:57 +0000 (19:24 +0000)]
fix negated set pnc with float compare problem

[r16091]

16 years ago- introduce an "end-block" to the absgraph, so the irg_end_block is known in a
Matthias Braun [Thu, 4 Oct 2007 19:18:05 +0000 (19:18 +0000)]
- introduce an "end-block" to the absgraph, so the irg_end_block is known in a
  dfs even if the program contains just an endless loop

[r16090]

16 years agocorrect register constraint for inb asm
Matthias Braun [Thu, 4 Oct 2007 16:12:55 +0000 (16:12 +0000)]
correct register constraint for inb asm

[r16089]

16 years agosuppress warnings
Michael Beck [Thu, 4 Oct 2007 16:12:24 +0000 (16:12 +0000)]
suppress warnings

[r16087]

16 years agofixed/improved assembler nodes
Matthias Braun [Thu, 4 Oct 2007 16:01:46 +0000 (16:01 +0000)]
fixed/improved assembler nodes

[r16086]

16 years agomore tricky asm tests
Matthias Braun [Thu, 4 Oct 2007 15:48:30 +0000 (15:48 +0000)]
more tricky asm tests

[r16085]