libfirm
16 years agoSmall cleanups.
Christoph Mallon [Thu, 25 Oct 2007 18:20:06 +0000 (18:20 +0000)]
Small cleanups.

[r16353]

16 years agoUse add_ia32_flags() instead of set_ia32_flags(), which was probably intended in...
Christoph Mallon [Thu, 25 Oct 2007 17:38:53 +0000 (17:38 +0000)]
Use add_ia32_flags() instead of set_ia32_flags(), which was probably intended in r16350.

[r16352]

16 years agofix parameter loads not being rematerialized
Matthias Braun [Thu, 25 Oct 2007 17:04:44 +0000 (17:04 +0000)]
fix parameter loads not being rematerialized

[r16350]

16 years agobugfix: the Op(Phi,Phi) optimization require both Phis in the same block
Michael Beck [Thu, 25 Oct 2007 16:25:54 +0000 (16:25 +0000)]
bugfix: the Op(Phi,Phi) optimization require both Phis in the same block

[r16349]

16 years agoHandle integer Abs for modes which are not 32bits wide.
Christoph Mallon [Thu, 25 Oct 2007 15:32:33 +0000 (15:32 +0000)]
Handle integer Abs for modes which are not 32bits wide.

[r16348]

16 years agofehler102: ia32 backend cannot handle integer Abs with modes which are not 32bit...
Christoph Mallon [Thu, 25 Oct 2007 15:31:35 +0000 (15:31 +0000)]
fehler102: ia32 backend cannot handle integer Abs with modes which are not 32bit wide.

[r16347]

16 years agoIn match_arguments() assert that match_am is set when match_{8,16}bit_am is set....
Christoph Mallon [Thu, 25 Oct 2007 15:24:11 +0000 (15:24 +0000)]
In match_arguments() assert that match_am is set when match_{8,16}bit_am is set. Add the missing match_am in create_I2I_Conv().

[r16346]

16 years agoRemove unused variable.
Christoph Mallon [Thu, 25 Oct 2007 15:19:49 +0000 (15:19 +0000)]
Remove unused variable.

[r16345]

16 years agomore Phi optimizations for Div, Mod, DivMod
Michael Beck [Wed, 24 Oct 2007 22:23:39 +0000 (22:23 +0000)]
more Phi optimizations for Div, Mod, DivMod

[r16342]

16 years agofixed test
Michael Beck [Wed, 24 Oct 2007 21:55:11 +0000 (21:55 +0000)]
fixed test

[r16341]

16 years agoadd Op(Phi(const, const, ...), Phi(const, const, ...)) optimization
Michael Beck [Wed, 24 Oct 2007 21:47:45 +0000 (21:47 +0000)]
add Op(Phi(const, const, ...), Phi(const, const, ...)) optimization

[r16340]

16 years agoadd test for new phi optimization
Michael Beck [Wed, 24 Oct 2007 21:46:48 +0000 (21:46 +0000)]
add test for new phi optimization

[r16339]

16 years agoadd more comments
Michael Beck [Wed, 24 Oct 2007 21:26:44 +0000 (21:26 +0000)]
add more comments

[r16338]

16 years agosame fix again on another place
Michael Beck [Wed, 24 Oct 2007 20:48:48 +0000 (20:48 +0000)]
same fix again on another place

[r16337]

16 years agoA more general color priorization.
Sebastian Hack [Wed, 24 Oct 2007 20:48:46 +0000 (20:48 +0000)]
A more general color priorization.

[r16336]

16 years agocheck the opcode again after an optimize_node()
Michael Beck [Wed, 24 Oct 2007 20:44:41 +0000 (20:44 +0000)]
check the opcode again after an optimize_node()

[r16335]

16 years agoEmit the "t" suffix for f96 numbers in the ia32 backend.
Christoph Mallon [Wed, 24 Oct 2007 18:33:44 +0000 (18:33 +0000)]
Emit the "t" suffix for f96 numbers in the ia32 backend.

[r16334]

16 years agoPad the names of fehler*.c with leading zeros for sorting.
Christoph Mallon [Wed, 24 Oct 2007 18:09:32 +0000 (18:09 +0000)]
Pad the names of fehler*.c with leading zeros for sorting.

[r16333]

16 years agoGive direct visual feedback by printing "FAILED" when a test in makereport failed.
Christoph Mallon [Wed, 24 Oct 2007 17:30:11 +0000 (17:30 +0000)]
Give direct visual feedback by printing "FAILED" when a test in makereport failed.

[r16332]

16 years agolong double x87 modes don't support AM
Michael Beck [Wed, 24 Oct 2007 15:16:29 +0000 (15:16 +0000)]
long double x87 modes don't support AM

[r16331]

16 years agoimproved fehler101.c. Now with printing!
Michael Beck [Wed, 24 Oct 2007 14:29:11 +0000 (14:29 +0000)]
improved fehler101.c. Now with printing!

[r16330]

16 years agocannot output suffix for long double store
Michael Beck [Wed, 24 Oct 2007 14:20:17 +0000 (14:20 +0000)]
cannot output suffix for long double store

[r16329]

16 years agobeware: when lowering Phi's, put them into the block list (needed for prt_block)
Michael Beck [Wed, 24 Oct 2007 14:18:17 +0000 (14:18 +0000)]
beware: when lowering Phi's, put them into the block list (needed for prt_block)

[r16328]

16 years agoRestore the AM fold behavior of prior to r16324. It is faster. *shrug*
Christoph Mallon [Wed, 24 Oct 2007 13:49:02 +0000 (13:49 +0000)]
Restore the AM fold behavior of prior to r16324. It is faster. *shrug*

[r16327]

16 years agoActually implement what r16324 promised.
Christoph Mallon [Wed, 24 Oct 2007 11:29:09 +0000 (11:29 +0000)]
Actually implement what r16324 promised.

[r16326]

16 years agoPrioritize chunks with constraint nodes more
Sebastian Hack [Wed, 24 Oct 2007 10:40:42 +0000 (10:40 +0000)]
Prioritize chunks with constraint nodes more

[r16325]

16 years agoImprove the AM folding heuristics: Do not fold AM if at least one of the AM operands...
Christoph Mallon [Tue, 23 Oct 2007 22:01:26 +0000 (22:01 +0000)]
Improve the AM folding heuristics: Do not fold AM if at least one of the AM operands is not used except for this address calculation.

[r16324]

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]