Michael Beck [Wed, 30 May 2007 22:26:30 +0000 (22:26 +0000)]
preliminary emitter for ASM nodes
[r14205]
Michael Beck [Wed, 30 May 2007 22:26:02 +0000 (22:26 +0000)]
schedule ASM nodes
[r14204]
Michael Beck [Wed, 30 May 2007 20:48:22 +0000 (20:48 +0000)]
placed the call the _get_irn_intra_arity() again into the assert: no need to execute it with NDEBUG: revert change 14194
[r14203]
Michael Beck [Wed, 30 May 2007 20:34:04 +0000 (20:34 +0000)]
enabled non-ia32 backends again: undo change 14191
[r14202]
Michael Beck [Wed, 30 May 2007 20:20:55 +0000 (20:20 +0000)]
reorder opcode registration to match iro_* order
[r14201]
Michael Beck [Wed, 30 May 2007 20:20:28 +0000 (20:20 +0000)]
Do not waste an opcode number. This ensures the 1:1 mapping from iro_* to opcode in the irp.
[r14200]
Michael Beck [Wed, 30 May 2007 20:19:08 +0000 (20:19 +0000)]
IA32-Backend expects that the irg has a iro_* to opcode mapping. Ensure that by an additional assert.
[r14199]
Michael Beck [Wed, 30 May 2007 20:16:26 +0000 (20:16 +0000)]
reorder opcode registration to match iro_* order
[r14198]
Christian Würdig [Wed, 30 May 2007 17:00:01 +0000 (17:00 +0000)]
changed attribute name from asm to assem as asm is a reserved keyword an GCC does not like it as attribute name
[r14197]
Andreas Schösser [Wed, 30 May 2007 16:30:51 +0000 (16:30 +0000)]
vproj nodes
[r14194]
Andreas Schösser [Wed, 30 May 2007 16:30:17 +0000 (16:30 +0000)]
fixed bug: Wrong opcode range was requested in be
[r14193]
Andreas Schösser [Wed, 30 May 2007 16:29:54 +0000 (16:29 +0000)]
fixed bug: Wrong opcode range was requested in be
[r14192]
Andreas Schösser [Wed, 30 May 2007 16:29:43 +0000 (16:29 +0000)]
fixed bug: Wrong opcode range was requested in be
[r14191]
Michael Beck [Wed, 30 May 2007 16:18:41 +0000 (16:18 +0000)]
renamed reserved word asm :-)
[r14190]
Michael Beck [Wed, 30 May 2007 16:16:06 +0000 (16:16 +0000)]
Added preliminary ASM node.
Fixed Proj(X_regular) node dumping.
[r14188]
Matthias Braun [Wed, 30 May 2007 14:08:38 +0000 (14:08 +0000)]
keep alive bugfixes for x87
[r14183]
Michael Beck [Wed, 30 May 2007 13:10:44 +0000 (13:10 +0000)]
Add missing keep bits to fld* instructions
[r14182]
Michael Beck [Wed, 30 May 2007 13:06:47 +0000 (13:06 +0000)]
Add constructors for PartBlock
renamed boolean attributes x into is_x
[r14181]
Matthias Braun [Wed, 30 May 2007 12:49:38 +0000 (12:49 +0000)]
fix xStoreSimple and SetST0
[r14179]
Michael Beck [Wed, 30 May 2007 12:41:44 +0000 (12:41 +0000)]
get_divop_resmod() added
PartBlock() constructors added
renamed boolean attributes x into is_x
[r14178]
Matthias Braun [Wed, 30 May 2007 12:39:05 +0000 (12:39 +0000)]
make x87 float mode default
[r14177]
Matthias Braun [Wed, 30 May 2007 12:34:04 +0000 (12:34 +0000)]
place spills after keeps
[r14176]
Michael Beck [Tue, 29 May 2007 16:07:45 +0000 (16:07 +0000)]
fixed turn_into_tuple()
[r14132]
Michael Beck [Tue, 29 May 2007 16:07:02 +0000 (16:07 +0000)]
copy 'n' paste error fixed
[r14131]
Michael Beck [Tue, 29 May 2007 15:23:46 +0000 (15:23 +0000)]
convopt.[ch] added
[r14124]
Matthias Braun [Tue, 29 May 2007 15:04:00 +0000 (15:04 +0000)]
spill phis in daemel spiller
[r14115]
Matthias Braun [Tue, 29 May 2007 14:57:17 +0000 (14:57 +0000)]
added the daemel spiller(tm) :-), it should be similar to the stupid interference graph based spilling most other register allocators do
[r14113]
Matthias Braun [Tue, 29 May 2007 14:56:30 +0000 (14:56 +0000)]
cleanups in spill helper code
[r14112]
Matthias Braun [Tue, 29 May 2007 14:50:47 +0000 (14:50 +0000)]
ia32 was missing spill cost estimates
[r14110]
Christoph Mallon [Mon, 28 May 2007 10:15:40 +0000 (10:15 +0000)]
Constify.
[r14066]
Christoph Mallon [Mon, 28 May 2007 10:06:34 +0000 (10:06 +0000)]
Remove unused variables.
[r14065]
Christoph Mallon [Sun, 27 May 2007 10:12:47 +0000 (10:12 +0000)]
Make the conv opt analysis and transformation code symmetrical.
[r14051]
Christoph Mallon [Sat, 26 May 2007 17:45:57 +0000 (17:45 +0000)]
- Push Convs through Phis
- Fix an off by one error which made the decision to do the Conv transformation too conservative
- Iterate Conv opt and local opt till the fix point is reached
[r14049]
Christoph Mallon [Sat, 26 May 2007 10:43:19 +0000 (10:43 +0000)]
Add the -f{,no-}deconv switches do {en,dis}able the conv node optimization.
[r14048]
Michael Beck [Fri, 25 May 2007 16:46:23 +0000 (16:46 +0000)]
BugFix: type conversion must signed extend for the destination mode
[r14042]
Michael Beck [Fri, 25 May 2007 16:37:55 +0000 (16:37 +0000)]
BugFix: _divmod() returned wrong result for -x/x : fixed
Indentation changed
[r14041]
Michael Beck [Fri, 25 May 2007 14:42:59 +0000 (14:42 +0000)]
int instruction added
[r14039]
Michael Beck [Fri, 25 May 2007 14:36:44 +0000 (14:36 +0000)]
Use new result mode and updated X_regular for the runtime call mapper
[r14037]
Michael Beck [Fri, 25 May 2007 14:35:51 +0000 (14:35 +0000)]
handle the new X_regular Proj's
add support for mode_T nodes with a result mode (currently Load and Div like)
[r14036]
Michael Beck [Fri, 25 May 2007 14:34:54 +0000 (14:34 +0000)]
add_hidden_param() handle the new X_regular Proj
[r14035]
Christoph Mallon [Thu, 24 May 2007 13:36:03 +0000 (13:36 +0000)]
Add missing break in a switch which caused an incorrect assertion.
[r14025]
Michael Beck [Thu, 24 May 2007 13:34:00 +0000 (13:34 +0000)]
turn_into_tuple() should use get_irn_n(..., -1) instead of get_nodes_block()
some reformatting
[r14024]
Michael Beck [Thu, 24 May 2007 13:00:43 +0000 (13:00 +0000)]
Do not add Bad nodes to the keep-alive
Removed old (and wrong) comment
[r14022]
Michael Beck [Thu, 24 May 2007 12:40:00 +0000 (12:40 +0000)]
fixed verify for new X_regular Proj's
fixed Bound, CopyB node verifier
changed indentation
[r14021]
Michael Beck [Wed, 23 May 2007 23:54:06 +0000 (23:54 +0000)]
removed impossible address modes
convert Lea's into Shl if possible
[r14015]
Michael Beck [Wed, 23 May 2007 23:53:03 +0000 (23:53 +0000)]
some doxygen comments added
removed impossible address modes
[r14014]
Michael Beck [Wed, 23 May 2007 23:52:15 +0000 (23:52 +0000)]
Fixed the (meanwhile wrong) turn_into_tuple(...,4), so inlining works again.
[r14013]
Christoph Mallon [Wed, 23 May 2007 21:00:07 +0000 (21:00 +0000)]
Cond nodes are a kind of cf node, too. Therefore also ignore them when copying block contents during condeval. Otherwise this leads to fake users during repeated condeval and somehow to a violation of the def-use-dominance.
[r14012]
Matthias Braun [Wed, 23 May 2007 20:18:10 +0000 (20:18 +0000)]
emit .skip if a string initializer is shorter than the entity
[r14011]
Matthias Braun [Wed, 23 May 2007 20:11:24 +0000 (20:11 +0000)]
fehler 16, found in 255.vortex
[r14010]
Matthias Braun [Wed, 23 May 2007 18:43:07 +0000 (18:43 +0000)]
fix height computation for phi nodes
[r14009]
Michael Beck [Wed, 23 May 2007 15:52:30 +0000 (15:52 +0000)]
Added new Proj_X_regular for all nodes producing a Proj_X_exc to support the new macro blocks
[r14008]
Michael Beck [Wed, 23 May 2007 15:47:08 +0000 (15:47 +0000)]
missing include added
[r14007]
Michael Beck [Wed, 23 May 2007 15:07:28 +0000 (15:07 +0000)]
added a callback function to check whether a given entity is a allocation call
[r14006]
Michael Beck [Wed, 23 May 2007 13:56:17 +0000 (13:56 +0000)]
add_irn_keepalive()
- only Phi, Block and Keep nodes can be kept alive!
Workaround for beabi:
- beabi needs to keep a Proj(M) :-(
[r14005]
Michael Beck [Wed, 23 May 2007 13:15:57 +0000 (13:15 +0000)]
- changed Phi0 attribute to be a struct
- Phi0 attribute is only available onb Phi0 nodes
This should now allow CSE on Phi nodes!
[r14002]
Christian Würdig [Wed, 23 May 2007 11:31:45 +0000 (11:31 +0000)]
added some comments
removed unused code
added some optimizations
[r14001]
Michael Beck [Wed, 23 May 2007 10:03:32 +0000 (10:03 +0000)]
Used new Div result mode
[r13999]
Michael Beck [Wed, 23 May 2007 10:02:13 +0000 (10:02 +0000)]
Verify new result mode
[r13997]
Michael Beck [Wed, 23 May 2007 09:49:24 +0000 (09:49 +0000)]
Add result mode to Division operations.
[r13995]
Christoph Mallon [Wed, 23 May 2007 09:03:09 +0000 (09:03 +0000)]
Use the more verbose comment on the edges-execfreq workaround matze originally wrote.
[r13994]
Matthias Braun [Wed, 23 May 2007 08:53:32 +0000 (08:53 +0000)]
fix uninitialized variables
[r13993]
Christoph Mallon [Tue, 22 May 2007 18:46:05 +0000 (18:46 +0000)]
Loads do not remove any nodes from the exec after sets. Also fix a 'node leak'.
[r13991]
Christoph Mallon [Tue, 22 May 2007 18:36:04 +0000 (18:36 +0000)]
Fix constness.
[r13990]
Matthias Braun [Tue, 22 May 2007 15:23:39 +0000 (15:23 +0000)]
workaround
[r13985]
Matthias Braun [Tue, 22 May 2007 14:39:38 +0000 (14:39 +0000)]
liveness variants with ir_nodeset_t
[r13983]
Matthias Braun [Tue, 22 May 2007 14:37:08 +0000 (14:37 +0000)]
fix my last committ
[r13982]
Matthias Braun [Tue, 22 May 2007 14:24:31 +0000 (14:24 +0000)]
correct usage of get_irn_generic_attr
[r13981]
Matthias Braun [Tue, 22 May 2007 14:19:01 +0000 (14:19 +0000)]
fix
[r13980]
Matthias Braun [Tue, 22 May 2007 14:11:43 +0000 (14:11 +0000)]
add get_irn_generic_attr_const
[r13979]
Christian Würdig [Tue, 22 May 2007 13:33:03 +0000 (13:33 +0000)]
BugFix: the order of the coloring is important!
[r13975]
Matthias Braun [Mon, 21 May 2007 20:27:59 +0000 (20:27 +0000)]
simplify testcase
[r13973]
Matthias Braun [Mon, 21 May 2007 20:25:23 +0000 (20:25 +0000)]
demonstrate another frontend bug
[r13972]
Matthias Braun [Mon, 21 May 2007 20:02:47 +0000 (20:02 +0000)]
be a bit less exact with float results so we don't get wrong error reports because of spilling
[r13971]
Matthias Braun [Mon, 21 May 2007 19:17:22 +0000 (19:17 +0000)]
testcase for conv optimisation bugs
[r13970]
Matthias Braun [Mon, 21 May 2007 19:09:25 +0000 (19:09 +0000)]
fix conv optimisation, remove wrong asserts
[r13969]
Matthias Braun [Mon, 21 May 2007 19:04:39 +0000 (19:04 +0000)]
don't do the tests twice
[r13968]
Matthias Braun [Mon, 21 May 2007 18:18:46 +0000 (18:18 +0000)]
made testcase smaller
[r13964]
Matthias Braun [Mon, 21 May 2007 18:16:28 +0000 (18:16 +0000)]
made testcase smaller
[r13963]
Matthias Braun [Mon, 21 May 2007 17:55:58 +0000 (17:55 +0000)]
next bug found in 179.parser
[r13962]
Matthias Braun [Mon, 21 May 2007 17:29:18 +0000 (17:29 +0000)]
only use addressmode for 32 bit modes
[r13961]
Matthias Braun [Mon, 21 May 2007 15:13:35 +0000 (15:13 +0000)]
fix it in a more ugly way
[r13960]
Matthias Braun [Mon, 21 May 2007 15:10:17 +0000 (15:10 +0000)]
disable locale
[r13959]
Michael Beck [Mon, 21 May 2007 15:05:14 +0000 (15:05 +0000)]
Add code to kill dead kept Phi nodes
[r13958]
Michael Beck [Mon, 21 May 2007 14:22:44 +0000 (14:22 +0000)]
BugFix:
- pred was used to store two values :-(
[r13957]
Matthias Braun [Mon, 21 May 2007 14:21:23 +0000 (14:21 +0000)]
add TODO items
[r13956]
Matthias Braun [Mon, 21 May 2007 14:19:57 +0000 (14:19 +0000)]
committ the conv optimisation
[r13955]
Matthias Braun [Mon, 21 May 2007 13:39:47 +0000 (13:39 +0000)]
sort reports differently
[r13954]
Michael Beck [Mon, 21 May 2007 13:26:36 +0000 (13:26 +0000)]
Fixed an assert
[r13953]
Michael Beck [Mon, 21 May 2007 13:07:55 +0000 (13:07 +0000)]
optimize_graph_df() now removes superfluous keep-alive edges
[r13951]
Michael Beck [Mon, 21 May 2007 13:05:37 +0000 (13:05 +0000)]
get_irn_generic_attr() cannot have a const argument
__get_irn_generic_attr() added to speed up backend
[r13950]
Michael Beck [Mon, 21 May 2007 13:03:39 +0000 (13:03 +0000)]
Hash() should return an unsigned
[r13949]
Michael Beck [Sun, 20 May 2007 12:52:24 +0000 (12:52 +0000)]
Fixed the last fix again:
- we cannot remove keep-alives here because only blocks are visited, removing KA requires node visiting
- now its clear why always moving Phis from pred block was a bad idea (and was fixed with the strange replace). It must be only done if pred dominated the current block.
[r13930]
Michael Beck [Sun, 20 May 2007 03:10:27 +0000 (03:10 +0000)]
BugFix for the cfoptbug.c:
Removed the old "defer" code, this code was wrong (and the old replacement code as well). After that, the original code was revived.
However, now ALL Phi nodes are copied even those unused.
Added keep-alive optimizer killing useless keep-alives.
This kills some created useless nodes.
It does not help with endless loops :-(
Possible fix: use back edges to check if there are users ...
[r13929]
Michael Beck [Sun, 20 May 2007 01:13:24 +0000 (01:13 +0000)]
C99 construct removed
[r13927]
Michael Beck [Sun, 20 May 2007 01:11:58 +0000 (01:11 +0000)]
lower_hl.h added
[r13926]
Michael Beck [Fri, 18 May 2007 15:52:18 +0000 (15:52 +0000)]
[r13918]
Matthias Braun [Fri, 18 May 2007 13:40:42 +0000 (13:40 +0000)]
include lower_hl.h in complete header
[r13916]
Matthias Braun [Fri, 18 May 2007 13:03:37 +0000 (13:03 +0000)]
emit execfreqs for all blocks. ignore the am_flavour setting and look at the actual values of the AM variables
[r13915]
Matthias Braun [Fri, 18 May 2007 12:53:18 +0000 (12:53 +0000)]
backends can specify costs for spill and reload
[r13914]