Matthias Braun [Sat, 3 Nov 2007 14:22:03 +0000 (14:22 +0000)]
fix compilation with statistics disabled
[r16419]
Matthias Braun [Sat, 3 Nov 2007 14:15:18 +0000 (14:15 +0000)]
make get_Block_matured get_Block_cfgpred_block accept const ir_nodes, add a hash_irn function
[r16418]
Matthias Braun [Sat, 3 Nov 2007 14:14:07 +0000 (14:14 +0000)]
get rid of benodesets (in favour of ir_nodeset), report nextuse place in beuses
[r16417]
Matthias Braun [Sat, 3 Nov 2007 14:13:54 +0000 (14:13 +0000)]
report nextuse place in beuses, add a function which reports normal reload costs (not weighted with execfreqs) as integer number
[r16416]
Christoph Mallon [Sat, 3 Nov 2007 13:08:12 +0000 (13:08 +0000)]
Add missing return 0 in the Pow mapper.
[r16415]
Christoph Mallon [Thu, 1 Nov 2007 21:04:13 +0000 (21:04 +0000)]
Handle mode_b Unknowns in the mode_b lowerer.
[r16414]
Michael Beck [Thu, 1 Nov 2007 20:34:08 +0000 (20:34 +0000)]
removed unused variable
[r16413]
Michael Beck [Thu, 1 Nov 2007 20:27:22 +0000 (20:27 +0000)]
Add mapper for strcmp and memcpy
[r16411]
Matthias Braun [Thu, 1 Nov 2007 15:46:12 +0000 (15:46 +0000)]
use putchar so the thing links
[r16410]
Matthias Braun [Thu, 1 Nov 2007 15:43:57 +0000 (15:43 +0000)]
exit with 0 so makereport is green
[r16409]
Matthias Braun [Thu, 1 Nov 2007 15:19:48 +0000 (15:19 +0000)]
use is_Const_0 not is_Const_null in fucom creation
[r16408]
Michael Beck [Thu, 1 Nov 2007 14:49:38 +0000 (14:49 +0000)]
clear the tarval buffer before fc_val_from_ieee754() fills bits in. There seems to be uninitialized bytes ...
[r16407]
Matthias Braun [Thu, 1 Nov 2007 13:25:54 +0000 (13:25 +0000)]
check that Psi flags input doesn't depend on load when creating AM (fix fehler002)
[r16404]
Matthias Braun [Thu, 1 Nov 2007 11:51:49 +0000 (11:51 +0000)]
another fehler
[r16403]
Michael Beck [Wed, 31 Oct 2007 17:55:00 +0000 (17:55 +0000)]
fixed one testcase
[r16401]
Michael Beck [Wed, 31 Oct 2007 17:48:56 +0000 (17:48 +0000)]
add i_mapper_Sqrt() and i_mapper_Pow() for some constants
[r16400]
Christoph Mallon [Wed, 31 Oct 2007 17:18:13 +0000 (17:18 +0000)]
Conv_A(Unknown_B) -> Unknown_A.
[r16399]
Michael Beck [Wed, 31 Oct 2007 17:06:12 +0000 (17:06 +0000)]
tarval_is_minus_one() added
[r16398]
Michael Beck [Wed, 31 Oct 2007 17:05:06 +0000 (17:05 +0000)]
tarval_is_minus_one() added
[r16397]
Michael Beck [Wed, 31 Oct 2007 16:50:31 +0000 (16:50 +0000)]
add doxygen comments
[r16396]
Matthias Braun [Mon, 29 Oct 2007 20:47:33 +0000 (20:47 +0000)]
fix remove_empty_blocks (don't use a generic walker it will get confused)
[r16393]
Matthias Braun [Mon, 29 Oct 2007 20:21:06 +0000 (20:21 +0000)]
peephole optimisation: reuse zero flag from previous ops if possible
[r16392]
Matthias Braun [Mon, 29 Oct 2007 20:20:15 +0000 (20:20 +0000)]
fix bugs when exchanging nodes to projs in bepeephole
[r16391]
Christoph Mallon [Mon, 29 Oct 2007 19:08:23 +0000 (19:08 +0000)]
fehler103: Unusual 64bit shift triggers assert in constraint handler.
[r16390]
Michael Beck [Mon, 29 Oct 2007 13:53:46 +0000 (13:53 +0000)]
add special case for lowering: x==/!=0 ==> l|h ==/!=0
[r16385]
Michael Beck [Sun, 28 Oct 2007 23:43:39 +0000 (23:43 +0000)]
testcase for rts library call optimization
[r16380]
Matthias Braun [Sun, 28 Oct 2007 15:51:20 +0000 (15:51 +0000)]
fix bug introduces in last commit
[r16379]
Matthias Braun [Sun, 28 Oct 2007 15:19:17 +0000 (15:19 +0000)]
compile without warnings when WITH_JVM is not set
[r16378]
Matthias Braun [Sun, 28 Oct 2007 15:19:06 +0000 (15:19 +0000)]
compile without warnings when WITH_JVM is not set
[r16377]
Matthias Braun [Sun, 28 Oct 2007 13:39:03 +0000 (13:39 +0000)]
remove (x*A + A -> (x+1) * A) optimisation. As reassoc should produce as good/better code and leas prefer Mul before Add
[r16376]
Matthias Braun [Sun, 28 Oct 2007 12:57:59 +0000 (12:57 +0000)]
more interesting lea problems
[r16375]
Matthias Braun [Sun, 28 Oct 2007 12:51:17 +0000 (12:51 +0000)]
end block can also have 0 predecessors
[r16374]
Matthias Braun [Sun, 28 Oct 2007 12:30:51 +0000 (12:30 +0000)]
improve asm test
[r16373]
Michael Beck [Fri, 26 Oct 2007 22:39:13 +0000 (22:39 +0000)]
fixed handling of pn_Call_X_regular
[r16372]
Michael Beck [Fri, 26 Oct 2007 22:38:32 +0000 (22:38 +0000)]
C99 constructs removed
[r16371]
Matthias Braun [Fri, 26 Oct 2007 18:44:11 +0000 (18:44 +0000)]
moved ia32 architecture configuration to a separate file and clean it up a bit
[r16370]
Matthias Braun [Fri, 26 Oct 2007 18:43:20 +0000 (18:43 +0000)]
small optimisation and cleanup
[r16369]
Matthias Braun [Fri, 26 Oct 2007 14:10:03 +0000 (14:10 +0000)]
make IS_ macros return 0 or 1
[r16368]
Matthias Braun [Fri, 26 Oct 2007 12:55:57 +0000 (12:55 +0000)]
added some comments, don't make backedges fallthrough (we still could do better by choosing a good loop header/backedges, but this seems to be better than nothing)
[r16367]
Michael Beck [Thu, 25 Oct 2007 23:27:07 +0000 (23:27 +0000)]
updated cpu architectures
[r16363]
Michael Beck [Thu, 25 Oct 2007 21:31:04 +0000 (21:31 +0000)]
- invalidate loop info if graph was changed
- changed indentation
[r16361]
Michael Beck [Thu, 25 Oct 2007 21:07:58 +0000 (21:07 +0000)]
invalidate analysis info only if graph was changed
[r16360]
Christoph Mallon [Thu, 25 Oct 2007 20:41:54 +0000 (20:41 +0000)]
Set the outs to inconsistent at the end of transform_irg().
[r16359]
Michael Beck [Thu, 25 Oct 2007 20:07:07 +0000 (20:07 +0000)]
C99 constructs removed
[r16358]
Michael Beck [Thu, 25 Oct 2007 20:06:49 +0000 (20:06 +0000)]
fixed typo in Phi optimization
[r16357]
Michael Beck [Thu, 25 Oct 2007 20:05:21 +0000 (20:05 +0000)]
Fixed Sub(Conv, Conv) optimization
[r16356]
Christoph Mallon [Thu, 25 Oct 2007 18:21:25 +0000 (18:21 +0000)]
Fix debug output.
[r16354]
Christoph Mallon [Thu, 25 Oct 2007 18:20:06 +0000 (18:20 +0000)]
Small cleanups.
[r16353]
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]
Matthias Braun [Thu, 25 Oct 2007 17:04:44 +0000 (17:04 +0000)]
fix parameter loads not being rematerialized
[r16350]
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]
Christoph Mallon [Thu, 25 Oct 2007 15:32:33 +0000 (15:32 +0000)]
Handle integer Abs for modes which are not 32bits wide.
[r16348]
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]
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]
Christoph Mallon [Thu, 25 Oct 2007 15:19:49 +0000 (15:19 +0000)]
Remove unused variable.
[r16345]
Michael Beck [Wed, 24 Oct 2007 22:23:39 +0000 (22:23 +0000)]
more Phi optimizations for Div, Mod, DivMod
[r16342]
Michael Beck [Wed, 24 Oct 2007 21:55:11 +0000 (21:55 +0000)]
fixed test
[r16341]
Michael Beck [Wed, 24 Oct 2007 21:47:45 +0000 (21:47 +0000)]
add Op(Phi(const, const, ...), Phi(const, const, ...)) optimization
[r16340]
Michael Beck [Wed, 24 Oct 2007 21:46:48 +0000 (21:46 +0000)]
add test for new phi optimization
[r16339]
Michael Beck [Wed, 24 Oct 2007 21:26:44 +0000 (21:26 +0000)]
add more comments
[r16338]
Michael Beck [Wed, 24 Oct 2007 20:48:48 +0000 (20:48 +0000)]
same fix again on another place
[r16337]
Sebastian Hack [Wed, 24 Oct 2007 20:48:46 +0000 (20:48 +0000)]
A more general color priorization.
[r16336]
Michael Beck [Wed, 24 Oct 2007 20:44:41 +0000 (20:44 +0000)]
check the opcode again after an optimize_node()
[r16335]
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]
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]
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]
Michael Beck [Wed, 24 Oct 2007 15:16:29 +0000 (15:16 +0000)]
long double x87 modes don't support AM
[r16331]
Michael Beck [Wed, 24 Oct 2007 14:29:11 +0000 (14:29 +0000)]
improved fehler101.c. Now with printing!
[r16330]
Michael Beck [Wed, 24 Oct 2007 14:20:17 +0000 (14:20 +0000)]
cannot output suffix for long double store
[r16329]
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]
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]
Christoph Mallon [Wed, 24 Oct 2007 11:29:09 +0000 (11:29 +0000)]
Actually implement what r16324 promised.
[r16326]
Sebastian Hack [Wed, 24 Oct 2007 10:40:42 +0000 (10:40 +0000)]
Prioritize chunks with constraint nodes more
[r16325]
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]
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]
Christoph Mallon [Tue, 23 Oct 2007 21:49:34 +0000 (21:49 +0000)]
Remove the unused function mode_needs_gp_reg().
[r16322]
Christoph Mallon [Tue, 23 Oct 2007 21:48:57 +0000 (21:48 +0000)]
Clarify a comment.
[r16321]
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]
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]
Michael Beck [Tue, 23 Oct 2007 19:14:56 +0000 (19:14 +0000)]
Add a main to let it compile.
[r16318]
Michael Beck [Tue, 23 Oct 2007 14:32:20 +0000 (14:32 +0000)]
added initialization to suppress (wrong) warning
[r16317]
Michael Beck [Tue, 23 Oct 2007 14:23:03 +0000 (14:23 +0000)]
removed useless calculation of dominance, debug mask settings
[r16316]
Michael Beck [Tue, 23 Oct 2007 14:20:22 +0000 (14:20 +0000)]
even better fix for r16314
[r16315]
Michael Beck [Tue, 23 Oct 2007 14:13:00 +0000 (14:13 +0000)]
initialize variable to supress (wrong) warning
[r16314]
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]
Michael Beck [Tue, 23 Oct 2007 10:39:54 +0000 (10:39 +0000)]
now even buggier
[r16312]
Michael Beck [Tue, 23 Oct 2007 10:36:06 +0000 (10:36 +0000)]
wrong spill ?
[r16311]
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]
Michael Beck [Mon, 22 Oct 2007 22:35:08 +0000 (22:35 +0000)]
Let dfs() discover only memory nodes
[r16309]
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]
Michael Beck [Mon, 22 Oct 2007 14:14:22 +0000 (14:14 +0000)]
beware of loops without Phis
[r16307]
Michael Beck [Mon, 22 Oct 2007 13:56:58 +0000 (13:56 +0000)]
fixed the loop optimization
[r16306]
Michael Beck [Mon, 22 Oct 2007 13:24:37 +0000 (13:24 +0000)]
heur5 not available yet ;-)
[r16305]
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]
Matthias Braun [Mon, 22 Oct 2007 12:24:28 +0000 (12:24 +0000)]
some more code I played around with lately
[r16303]
Michael Beck [Mon, 22 Oct 2007 12:25:03 +0000 (12:25 +0000)]
transform the macro block header
[r16302]
Michael Beck [Mon, 22 Oct 2007 12:09:25 +0000 (12:09 +0000)]
preliminary version of moving Loads out of loops
[r16301]
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]
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]
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]