libfirm
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]

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]