libfirm
16 years agoRemove dead code, remove pointless marking of memory nodes, explain a bit what happens.
Christoph Mallon [Tue, 23 Oct 2007 21:52:34 +0000 (21:52 +0000)]
Remove dead code, remove pointless marking of memory nodes, explain a bit what happens.

[r16323]

16 years agoRemove the unused function mode_needs_gp_reg().
Christoph Mallon [Tue, 23 Oct 2007 21:49:34 +0000 (21:49 +0000)]
Remove the unused function mode_needs_gp_reg().

[r16322]

16 years agoClarify a comment.
Christoph Mallon [Tue, 23 Oct 2007 21:48:57 +0000 (21:48 +0000)]
Clarify a comment.

[r16321]

16 years ago- Allow an arbitrary (for arbitrary < 32) number of in_rBAR and !in_rBAR constraints...
Christoph Mallon [Tue, 23 Oct 2007 21:26:43 +0000 (21:26 +0000)]
- Allow an arbitrary (for arbitrary < 32) number of in_rBAR and !in_rBAR constraints per node.
- Remove !in and arch_register_req_type_should_be_different_from_all.
- Specify the output constraints of ia32 ShlD and ShrD more accurately as in_r1 !in_r2 !in_r3 instead of !in. This usually saves the fourth register.

[r16320]

16 years agoDo no parse {,!}out_rBAR constraints anymore. The constraint handler does not handle...
Christoph Mallon [Tue, 23 Oct 2007 20:49:24 +0000 (20:49 +0000)]
Do no parse {,!}out_rBAR constraints anymore. The constraint handler does not handle them anyway.

[r16319]

16 years agoAdd a main to let it compile.
Michael Beck [Tue, 23 Oct 2007 19:14:56 +0000 (19:14 +0000)]
Add a main to let it compile.

[r16318]

16 years agoadded initialization to suppress (wrong) warning
Michael Beck [Tue, 23 Oct 2007 14:32:20 +0000 (14:32 +0000)]
added initialization to suppress (wrong) warning

[r16317]

16 years agoremoved useless calculation of dominance, debug mask settings
Michael Beck [Tue, 23 Oct 2007 14:23:03 +0000 (14:23 +0000)]
removed useless calculation of dominance, debug mask settings

[r16316]

16 years agoeven better fix for r16314
Michael Beck [Tue, 23 Oct 2007 14:20:22 +0000 (14:20 +0000)]
even better fix for r16314

[r16315]

16 years agoinitialize variable to supress (wrong) warning
Michael Beck [Tue, 23 Oct 2007 14:13:00 +0000 (14:13 +0000)]
initialize variable to supress (wrong) warning

[r16314]

16 years agotemporary disable "manual" spill due to probles with uninitialised reloaded_value
Michael Beck [Tue, 23 Oct 2007 13:32:09 +0000 (13:32 +0000)]
temporary disable "manual" spill due to probles with uninitialised reloaded_value

[r16313]

16 years agonow even buggier
Michael Beck [Tue, 23 Oct 2007 10:39:54 +0000 (10:39 +0000)]
now even buggier

[r16312]

16 years agowrong spill ?
Michael Beck [Tue, 23 Oct 2007 10:36:06 +0000 (10:36 +0000)]
wrong spill ?

[r16311]

16 years agoadd CopyB support to get_op_fragile_mem()
Michael Beck [Mon, 22 Oct 2007 22:56:57 +0000 (22:56 +0000)]
add CopyB support to get_op_fragile_mem()
used new pn_Generic_M_regular constant

[r16310]

16 years agoLet dfs() discover only memory nodes
Michael Beck [Mon, 22 Oct 2007 22:35:08 +0000 (22:35 +0000)]
Let dfs() discover only memory nodes

[r16309]

16 years ago- check if a Load has a regular exec before chenging it
Michael Beck [Mon, 22 Oct 2007 16:54:53 +0000 (16:54 +0000)]
- check if a Load has a regular exec before chenging it
- killed a shortcut: does NOT work if the loop contains Stores to the same address
- BugFix: ldst_info_t must be added to the Load node, NOT to the block

[r16308]

16 years agobeware of loops without Phis
Michael Beck [Mon, 22 Oct 2007 14:14:22 +0000 (14:14 +0000)]
beware of loops without Phis

[r16307]

16 years agofixed the loop optimization
Michael Beck [Mon, 22 Oct 2007 13:56:58 +0000 (13:56 +0000)]
fixed the loop optimization

[r16306]

16 years agoheur5 not available yet ;-)
Michael Beck [Mon, 22 Oct 2007 13:24:37 +0000 (13:24 +0000)]
heur5 not available yet ;-)

[r16305]

16 years agoSome heur4 tweaks
Sebastian Hack [Mon, 22 Oct 2007 13:13:07 +0000 (13:13 +0000)]
Some heur4 tweaks
ILP coalescing should work again
changed include of config.h to firm_config.h since WITH_ILP is defined there

[r16304]

16 years agosome more code I played around with lately
Matthias Braun [Mon, 22 Oct 2007 12:24:28 +0000 (12:24 +0000)]
some more code I played around with lately

[r16303]

16 years agotransform the macro block header
Michael Beck [Mon, 22 Oct 2007 12:25:03 +0000 (12:25 +0000)]
transform the macro block header

[r16302]

16 years agopreliminary version of moving Loads out of loops
Michael Beck [Mon, 22 Oct 2007 12:09:25 +0000 (12:09 +0000)]
preliminary version of moving Loads out of loops

[r16301]

16 years agoadd a short cut to the disabiguator: pointer and non-pointer are not allowed to alias
Michael Beck [Mon, 22 Oct 2007 12:02:35 +0000 (12:02 +0000)]
add a short cut to the disabiguator: pointer and non-pointer are not allowed to alias

[r16300]

16 years agoTreat Start as a forking op in remove_critical edges. This will place a block here...
Michael Beck [Mon, 22 Oct 2007 10:13:36 +0000 (10:13 +0000)]
Treat Start as a forking op in remove_critical edges. This will place a block here if needed (before loops for instance)

[r16298]

16 years agodon't aggressively fold some nodes when we know it will increase register pressure
Matthias Braun [Sun, 21 Oct 2007 15:36:59 +0000 (15:36 +0000)]
don't aggressively fold some nodes when we know it will increase register pressure

[r16297]

16 years agofix address mode calculation: we can not eat immediates for shifted values (well...
Matthias Braun [Sun, 21 Oct 2007 14:19:49 +0000 (14:19 +0000)]
fix address mode calculation: we can not eat immediates for shifted values (well we could shift them, but that is not implemented yet and isn't even possible for symconsts...)

[r16296]

16 years ago- fix a conceptual bug in peephole, we need a callback before and after
Matthias Braun [Sun, 21 Oct 2007 13:09:00 +0000 (13:09 +0000)]
- fix a conceptual bug in peephole, we need a callback before and after
  replacing a node to correctly update liveness info. This should fix the big
  bad twolf
- added some debugging statements to bepeephole

[r16295]

16 years agoFix r16293.
Christoph Mallon [Sat, 20 Oct 2007 08:02:20 +0000 (08:02 +0000)]
Fix r16293.

[r16294]

16 years agoMake the emit sequences of ShrD and ShlD probably more correct by copying first and...
Christoph Mallon [Fri, 19 Oct 2007 20:29:30 +0000 (20:29 +0000)]
Make the emit sequences of ShrD and ShlD probably more correct by copying first and shifting after that.

[r16293]

16 years agoUndo r16291.
Christoph Mallon [Fri, 19 Oct 2007 20:19:00 +0000 (20:19 +0000)]
Undo r16291.
Requested by: beck

[r16292]

16 years agouse get_irn_ne() instead of (direct) call to get_irn_link()
Michael Beck [Fri, 19 Oct 2007 20:06:27 +0000 (20:06 +0000)]
use get_irn_ne() instead of (direct) call to get_irn_link()

[r16291]

16 years agoGeneralise (and fix) sorting of operands by constness and index.
Christoph Mallon [Fri, 19 Oct 2007 19:38:19 +0000 (19:38 +0000)]
Generalise (and fix) sorting of operands by constness and index.

[r16290]

16 years agoFixed broken indentation of r16286
Michael Beck [Fri, 19 Oct 2007 19:27:53 +0000 (19:27 +0000)]
Fixed broken indentation of r16286

[r16289]

16 years agofixed typos
Michael Beck [Fri, 19 Oct 2007 19:24:40 +0000 (19:24 +0000)]
fixed typos
use *_nodes_block() instead of *_irn_n(n, -1)

[r16288]

16 years agoNow even correct! (see r16284)
Christoph Mallon [Fri, 19 Oct 2007 19:23:43 +0000 (19:23 +0000)]
Now even correct! (see r16284)

[r16287]

16 years agoMake the ir_loop link field permanent. The other behavior is unexpected.
Michael Beck [Fri, 19 Oct 2007 19:08:39 +0000 (19:08 +0000)]
Make the ir_loop link field permanent. The other behavior is unexpected.

[r16286]

16 years agofix Cmp input normalisation
Matthias Braun [Fri, 19 Oct 2007 18:13:10 +0000 (18:13 +0000)]
fix Cmp input normalisation

[r16285]

16 years agoA do-while loop is nicer than a for loop here.
Christoph Mallon [Fri, 19 Oct 2007 18:00:44 +0000 (18:00 +0000)]
A do-while loop is nicer than a for loop here.

[r16284]

16 years agoFix fehler99: always skip at least one node and check for (Copy)Keeps when looking...
Christoph Mallon [Fri, 19 Oct 2007 17:57:27 +0000 (17:57 +0000)]
Fix fehler99: always skip at least one node and check for (Copy)Keeps when looking for the insertion point of a CopyKeep. Also do not check for Projs, they are not scheduled anymore.

[r16283]

16 years agofehler99: defective copykeep when ShrD has to identical inputs for lo and hi.
Christoph Mallon [Fri, 19 Oct 2007 17:24:18 +0000 (17:24 +0000)]
fehler99: defective copykeep when ShrD has to identical inputs for lo and hi.

[r16282]

16 years agoadd missing initialization
Michael Beck [Fri, 19 Oct 2007 14:31:24 +0000 (14:31 +0000)]
add missing initialization

[r16280]

16 years agofixed warnings in release mode
Michael Beck [Fri, 19 Oct 2007 14:29:12 +0000 (14:29 +0000)]
fixed warnings in release mode

[r16279]

16 years agoto shut up gcc in release mode
Michael Beck [Fri, 19 Oct 2007 14:24:15 +0000 (14:24 +0000)]
to shut up gcc in release mode

[r16278]

16 years agorenamed type_state to ir_type_state
Michael Beck [Fri, 19 Oct 2007 14:17:38 +0000 (14:17 +0000)]
renamed type_state to ir_type_state

[r16277]

16 years agorestrict some Cmp related optimizations to integer types
Michael Beck [Fri, 19 Oct 2007 14:04:05 +0000 (14:04 +0000)]
restrict some Cmp related optimizations to integer types
create a new Proj at the end of transform_node_Proj_Cmp(): this will lead to a fixpoint optimizations of Cmp's
no need to use_new_r_Const(): they are always placed in the startblock

[r16276]

16 years agoA+X == A -> X==0 optimisations
Matthias Braun [Fri, 19 Oct 2007 12:48:46 +0000 (12:48 +0000)]
A+X == A -> X==0 optimisations

[r16275]

16 years agonew testcases
Matthias Braun [Fri, 19 Oct 2007 12:34:07 +0000 (12:34 +0000)]
new testcases

[r16274]

16 years ago- improve set transformation
Matthias Braun [Fri, 19 Oct 2007 11:10:56 +0000 (11:10 +0000)]
- improve set transformation
- create SetMems
- support 3 operand IMul
- started writing a new incsp->store to push peephole phase

[r16273]

16 years agomake it possible to specify custom mode for set lowering
Matthias Braun [Fri, 19 Oct 2007 11:09:34 +0000 (11:09 +0000)]
make it possible to specify custom mode for set lowering

[r16272]

16 years agoFix fehler 98. clarify comments.
Christoph Mallon [Fri, 19 Oct 2007 09:00:03 +0000 (09:00 +0000)]
Fix fehler 98. clarify comments.

[r16271]

16 years agomake fehler98.c behave properly.
Christoph Mallon [Fri, 19 Oct 2007 08:54:02 +0000 (08:54 +0000)]
make fehler98.c behave properly.

[r16270]

16 years agofehler98: gen_Cmp tries to build test with two immediates.
Christoph Mallon [Fri, 19 Oct 2007 08:50:13 +0000 (08:50 +0000)]
fehler98: gen_Cmp tries to build test with two immediates.

[r16269]

16 years agofixed release build
Michael Beck [Thu, 18 Oct 2007 15:46:32 +0000 (15:46 +0000)]
fixed release build

[r16266]

16 years agofixed release build with assertions enabled
Michael Beck [Thu, 18 Oct 2007 15:42:51 +0000 (15:42 +0000)]
fixed release build with assertions enabled

[r16265]

16 years agoSmall cleanup.
Christoph Mallon [Thu, 18 Oct 2007 12:06:10 +0000 (12:06 +0000)]
Small cleanup.

[r16264]

16 years agoRestructure gen_Cmp() so it does not use ia32_use_source_address_mode() anymore,...
Christoph Mallon [Thu, 18 Oct 2007 10:03:03 +0000 (10:03 +0000)]
Restructure gen_Cmp() so it does not use ia32_use_source_address_mode() anymore, but only match_arguments().

[r16263]

16 years agofixed declaration of dbg
Michael Beck [Wed, 17 Oct 2007 22:33:53 +0000 (22:33 +0000)]
fixed declaration of dbg

[r16262]

16 years agofixed _is_Phi()
Michael Beck [Wed, 17 Oct 2007 22:08:33 +0000 (22:08 +0000)]
fixed _is_Phi()

[r16261]

16 years agoadd inline versions of is_Phi and is_Proj
Matthias Braun [Wed, 17 Oct 2007 22:01:57 +0000 (22:01 +0000)]
add inline versions of is_Phi and is_Proj

[r16260]

16 years agoremoved an if, should not happen on this place
Michael Beck [Wed, 17 Oct 2007 19:52:21 +0000 (19:52 +0000)]
removed an if, should not happen on this place

[r16259]

16 years agounsafe mode for float to int conversion
Matthias Braun [Wed, 17 Oct 2007 19:43:32 +0000 (19:43 +0000)]
unsafe mode for float to int conversion

[r16258]

16 years agoimprove float->int conversion
Matthias Braun [Wed, 17 Oct 2007 19:05:27 +0000 (19:05 +0000)]
improve float->int conversion

[r16257]

16 years ago- Add a generic_attribute field to irops
Matthias Braun [Wed, 17 Oct 2007 17:09:19 +0000 (17:09 +0000)]
- Add a generic_attribute field to irops
- extend backend generator to support custom irop data
- cleanup and streamline transform code in ia32
- Improve handling of AddAM vs. Add used in AM expressions

[r16254]

16 years agosome interesting testcases to look at
Matthias Braun [Wed, 17 Oct 2007 15:25:28 +0000 (15:25 +0000)]
some interesting testcases to look at

[r16253]

16 years agoextended version
Michael Beck [Wed, 17 Oct 2007 15:21:20 +0000 (15:21 +0000)]
extended version

[r16252]

16 years agofixed two warnings
Michael Beck [Wed, 17 Oct 2007 14:08:43 +0000 (14:08 +0000)]
fixed two warnings

[r16251]

16 years agoRefactored attributes:
Michael Beck [Wed, 17 Oct 2007 13:50:03 +0000 (13:50 +0000)]
Refactored attributes:
 - remove pn_code from general ones
 - add attribute types for condcode and copyb
 - more more attributes into constructors

[r16250]

16 years agofloat->unsigned 64bit does not work yet: panic
Michael Beck [Wed, 17 Oct 2007 13:48:56 +0000 (13:48 +0000)]
float->unsigned 64bit does not work yet: panic

[r16249]

16 years ago- renamed a lot of parameters to more sensible names
Michael Beck [Wed, 17 Oct 2007 13:43:13 +0000 (13:43 +0000)]
- renamed a lot of parameters to more sensible names
- hopefully fixed Shrs with unsigned values (and did not break other cases)

[r16248]

16 years agofehler97
Matthias Braun [Wed, 17 Oct 2007 13:25:03 +0000 (13:25 +0000)]
fehler97

[r16247]

16 years agoadd some comments, DBG_OPT call
Michael Beck [Wed, 17 Oct 2007 12:50:56 +0000 (12:50 +0000)]
add some comments, DBG_OPT call

[r16246]

16 years agoenable Minus(Iu) const folding
Michael Beck [Wed, 17 Oct 2007 12:39:29 +0000 (12:39 +0000)]
enable Minus(Iu) const folding

[r16245]

16 years agoIn the RA constraint handler insert no copy when an operand is used more than once...
Christoph Mallon [Wed, 17 Oct 2007 12:07:06 +0000 (12:07 +0000)]
In the RA constraint handler insert no copy when an operand is used more than once with constraints, but the constraints are equal (this is not optimal, but better than before and solves the test x, x case on x86).

[r16244]

16 years agono need to test mode of other argument in use_source_address_mode
Matthias Braun [Tue, 16 Oct 2007 20:58:01 +0000 (20:58 +0000)]
no need to test mode of other argument in use_source_address_mode

[r16241]

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]