libfirm
11 years agovalueset: Remove the unused link field.
Christoph Mallon [Wed, 5 Dec 2012 13:35:48 +0000 (14:35 +0100)]
valueset: Remove the unused link field.

11 years agocdep: Remove unnecessary end block test.
Christoph Mallon [Wed, 5 Dec 2012 13:42:54 +0000 (14:42 +0100)]
cdep: Remove unnecessary end block test.

The ipdom of each predecessor of the end block is the end block, so the subsequent loop does nothing.

11 years agocdep: Remove unnecessary start block test.
Christoph Mallon [Wed, 5 Dec 2012 11:06:23 +0000 (12:06 +0100)]
cdep: Remove unnecessary start block test.

The start block has no predecessors, so the subsequent loop will not be entered.

11 years agogvn_pre: Remove redundant start block test.
Christoph Mallon [Wed, 5 Dec 2012 13:27:25 +0000 (14:27 +0100)]
gvn_pre: Remove redundant start block test.

The next if tests for less than 2 predecessors, which the start block fulfills.

11 years agoinstrument: Remove stale start loop test.
Christoph Mallon [Wed, 5 Dec 2012 13:17:26 +0000 (14:17 +0100)]
instrument: Remove stale start loop test.

11 years agotailrec: Remove stale start loop test.
Christoph Mallon [Wed, 5 Dec 2012 11:04:15 +0000 (12:04 +0100)]
tailrec: Remove stale start loop test.

11 years agocfopt: Remove unnecessary start block test.
Christoph Mallon [Wed, 5 Dec 2012 11:03:18 +0000 (12:03 +0100)]
cfopt: Remove unnecessary start block test.

The start block does not end in a Jmp, which the next if checks.

11 years agox87: Remove stale start loop test.
Christoph Mallon [Wed, 5 Dec 2012 11:02:42 +0000 (12:02 +0100)]
x87: Remove stale start loop test.

11 years agobeuses: Remove stale start loop test.
Christoph Mallon [Tue, 4 Dec 2012 15:55:39 +0000 (16:55 +0100)]
beuses: Remove stale start loop test.

11 years agobestate: Remove redundant test for the start block.
Christoph Mallon [Wed, 5 Dec 2012 10:23:22 +0000 (11:23 +0100)]
bestate: Remove redundant test for the start block.

The start block has no predecessors, so the following loop will not be executed.

11 years agobestack: Fetch the start block only once.
Christoph Mallon [Wed, 5 Dec 2012 10:21:32 +0000 (11:21 +0100)]
bestack: Fetch the start block only once.

11 years agoexecfreq: Fetch the start block only once.
Christoph Mallon [Wed, 5 Dec 2012 10:18:43 +0000 (11:18 +0100)]
execfreq: Fetch the start block only once.

11 years agobessaconstr: Move code, which is only needed for statistics, into the optionally...
Christoph Mallon [Wed, 5 Dec 2012 10:20:25 +0000 (11:20 +0100)]
bessaconstr: Move code, which is only needed for statistics, into the optionally compiled statistics part.

11 years agobeifg: Use dom_tree_walk_irg(irg, ...) instead of dom_tree_walk(get_irg_start_block...
Christoph Mallon [Wed, 5 Dec 2012 10:19:31 +0000 (11:19 +0100)]
beifg: Use dom_tree_walk_irg(irg, ...) instead of dom_tree_walk(get_irg_start_block(irg), ...).

11 years agoopt_ldst: Remove the attribute start_bl from struct ldst_env_t.
Christoph Mallon [Wed, 5 Dec 2012 10:16:27 +0000 (11:16 +0100)]
opt_ldst: Remove the attribute start_bl from struct ldst_env_t.

It is only used in one place for an assertion, where the start block can be retrieved locally.

11 years agoirverify: Verify that nodes, which should be in the start block, are in the start...
Christoph Mallon [Wed, 5 Dec 2012 10:14:21 +0000 (11:14 +0100)]
irverify: Verify that nodes, which should be in the start block, are in the start block.

11 years agofp-vrp: Simplify test when optimising Minus(x0...0).
Christoph Mallon [Wed, 5 Dec 2012 09:22:14 +0000 (10:22 +0100)]
fp-vrp: Simplify test when optimising Minus(x0...0).

It is sufficient to test, whether the zero bits equal the minimal value.
If they are all zero, the result is constant and this optimisation is unnecessary.

11 years agovrp: Remove redundant assure_irg_outs().
Christoph Mallon [Tue, 4 Dec 2012 15:51:32 +0000 (16:51 +0100)]
vrp: Remove redundant assure_irg_outs().

The walker does not invalidate the info and the user of the walker already assures it.

11 years agobenode: Remove the parameter irg from be_new_Call().
Christoph Mallon [Tue, 4 Dec 2012 15:19:23 +0000 (16:19 +0100)]
benode: Remove the parameter irg from be_new_Call().

Infer it from block.

11 years agobenode: Remove the parameter irg from be_new_Return().
Christoph Mallon [Tue, 4 Dec 2012 15:16:04 +0000 (16:16 +0100)]
benode: Remove the parameter irg from be_new_Return().

Infer it from block.

11 years agoLet fp-vrp optimize Minus nodes.
Sebastian Buchwald [Wed, 5 Dec 2012 08:43:07 +0000 (09:43 +0100)]
Let fp-vrp optimize Minus nodes.

11 years agoimprove docu, fix doxygen warnings
Matthias Braun [Tue, 4 Dec 2012 22:15:44 +0000 (23:15 +0100)]
improve docu, fix doxygen warnings

11 years agofltcals: remove debug prints
Matthias Braun [Tue, 4 Dec 2012 02:42:01 +0000 (03:42 +0100)]
fltcals: remove debug prints

should be mostly bugfree by now and you can still use gdb for tracing
calls.

11 years agostrcalc: remove debug printfs
Matthias Braun [Tue, 4 Dec 2012 02:22:04 +0000 (03:22 +0100)]
strcalc: remove debug printfs

should be mostly bugfree by now and you can still use gdb to trace
calls.

11 years agotv: remove unnecessary comments
Matthias Braun [Tue, 4 Dec 2012 02:17:37 +0000 (03:17 +0100)]
tv: remove unnecessary comments

functions are already described in their headers with the declaration.

11 years agotv: remove comments about old vector modes
Matthias Braun [Tue, 4 Dec 2012 02:13:03 +0000 (03:13 +0100)]
tv: remove comments about old vector modes

11 years agotv: remove support for carry state flag
Matthias Braun [Tue, 4 Dec 2012 02:12:20 +0000 (03:12 +0100)]
tv: remove support for carry state flag

11 years agocleanup vrp
Matthias Braun [Tue, 4 Dec 2012 10:06:22 +0000 (11:06 +0100)]
cleanup vrp

11 years agoremove Cast node
Matthias Braun [Tue, 4 Dec 2012 02:06:11 +0000 (03:06 +0100)]
remove Cast node

11 years agoremove class cast optimization
Matthias Braun [Tue, 4 Dec 2012 01:55:01 +0000 (02:55 +0100)]
remove class cast optimization

11 years agoremove Bound node
Matthias Braun [Tue, 4 Dec 2012 01:42:10 +0000 (02:42 +0100)]
remove Bound node

11 years agoremove Carry+Borrow node
Matthias Braun [Tue, 4 Dec 2012 01:39:46 +0000 (02:39 +0100)]
remove Carry+Borrow node

11 years agotv: remove unused float_to_int_mode
Matthias Braun [Tue, 4 Dec 2012 01:35:52 +0000 (02:35 +0100)]
tv: remove unused float_to_int_mode

11 years agotv: remove unused reserved_id
Matthias Braun [Tue, 4 Dec 2012 01:28:58 +0000 (02:28 +0100)]
tv: remove unused reserved_id

11 years agocleanup reserved tarval stuff
Matthias Braun [Tue, 4 Dec 2012 01:27:53 +0000 (02:27 +0100)]
cleanup reserved tarval stuff

11 years agoremove support to disable floatingpoint constant folding
Matthias Braun [Tue, 4 Dec 2012 01:20:47 +0000 (02:20 +0100)]
remove support to disable floatingpoint constant folding

11 years agotv: remove support for SWITCH_NOINFINITY and SWITCH_NODENORMALS
Matthias Braun [Tue, 4 Dec 2012 01:18:17 +0000 (02:18 +0100)]
tv: remove support for SWITCH_NOINFINITY and SWITCH_NODENORMALS

11 years agowe always compile with C99 support now
Matthias Braun [Tue, 4 Dec 2012 01:13:52 +0000 (02:13 +0100)]
we always compile with C99 support now

11 years agoremove (last) mentioning of STA backend
Matthias Braun [Tue, 4 Dec 2012 01:12:00 +0000 (02:12 +0100)]
remove (last) mentioning of STA backend

11 years agoremove #if 1
Matthias Braun [Tue, 4 Dec 2012 01:10:55 +0000 (02:10 +0100)]
remove #if 1

11 years agofurther cleanup in loop code
Matthias Braun [Tue, 4 Dec 2012 01:06:54 +0000 (02:06 +0100)]
further cleanup in loop code

11 years agoremove commented out code
Matthias Braun [Tue, 4 Dec 2012 01:02:50 +0000 (02:02 +0100)]
remove commented out code

11 years agoreenable femms
Matthias Braun [Tue, 4 Dec 2012 01:01:25 +0000 (02:01 +0100)]
reenable femms

11 years agoremove unused support for max_loop_depth
Matthias Braun [Tue, 4 Dec 2012 00:42:55 +0000 (01:42 +0100)]
remove unused support for max_loop_depth

11 years agoremove more unused loop stuff
Matthias Braun [Tue, 4 Dec 2012 00:40:34 +0000 (01:40 +0100)]
remove more unused loop stuff

11 years agoalways enable NO_CFLOOP_WITHOUT_HEAD
Matthias Braun [Tue, 4 Dec 2012 00:36:44 +0000 (01:36 +0100)]
always enable NO_CFLOOP_WITHOUT_HEAD

11 years agoremove unnecessary declaration
Matthias Braun [Tue, 4 Dec 2012 00:32:32 +0000 (01:32 +0100)]
remove unnecessary declaration

11 years agoremove more unused loop fields
Matthias Braun [Tue, 4 Dec 2012 00:28:44 +0000 (01:28 +0100)]
remove more unused loop fields

11 years agoremove nearly unused loop_flags
Matthias Braun [Tue, 4 Dec 2012 00:26:35 +0000 (01:26 +0100)]
remove nearly unused loop_flags

11 years agosmall docu cleanups
Matthias Braun [Tue, 4 Dec 2012 10:12:26 +0000 (11:12 +0100)]
small docu cleanups

11 years agoupgrade Doxyfile to latest doxygen version
Matthias Braun [Mon, 3 Dec 2012 23:58:19 +0000 (00:58 +0100)]
upgrade Doxyfile to latest doxygen version

11 years agoirdump: Remove the parameter bad from get_mode_name_ex().
Christoph Mallon [Tue, 4 Dec 2012 14:02:35 +0000 (15:02 +0100)]
irdump: Remove the parameter bad from get_mode_name_ex().

All callers pass in a null pointer.

11 years agotv: Remove mul_table[][][] and simply use * and <<.
Christoph Mallon [Tue, 4 Dec 2012 12:37:29 +0000 (13:37 +0100)]
tv: Remove mul_table[][][] and simply use * and <<.

11 years agotv: Remove add_table[][][] and simply use +.
Christoph Mallon [Tue, 4 Dec 2012 12:24:29 +0000 (13:24 +0100)]
tv: Remove add_table[][][] and simply use +.

11 years agoscripts: Generate accessor functions for nodes with a variable/dynamic number of...
Christoph Mallon [Mon, 3 Dec 2012 18:51:01 +0000 (19:51 +0100)]
scripts: Generate accessor functions for nodes with a variable/dynamic number of inputs.

11 years agoscripts: Fix some whitespace nits.
Christoph Mallon [Mon, 3 Dec 2012 17:25:13 +0000 (18:25 +0100)]
scripts: Fix some whitespace nits.

11 years agobelive: Remove the visited bitset for liveness calculation.
Christoph Mallon [Mon, 3 Dec 2012 15:46:28 +0000 (16:46 +0100)]
belive: Remove the visited bitset for liveness calculation.

Simply check, whether any liveness bits were set before.

11 years agobelive: Directly pass the flags to set to live_end_at_block() instead of passing...
Christoph Mallon [Mon, 3 Dec 2012 15:33:38 +0000 (16:33 +0100)]
belive: Directly pass the flags to set to live_end_at_block() instead of passing a bool.

11 years agobelive: Avoid duplicate map lookups when calculating the liveness of a node in a...
Christoph Mallon [Mon, 3 Dec 2012 15:28:31 +0000 (16:28 +0100)]
belive: Avoid duplicate map lookups when calculating the liveness of a node in a block.

11 years agoRefactoring: Deleted unused inlining functionality.
Tobias Rapp [Mon, 3 Dec 2012 11:51:44 +0000 (12:51 +0100)]
Refactoring: Deleted unused inlining functionality.

11 years agoir: Remove unnecessary mode_b checks of Cond selectors.
Christoph Mallon [Mon, 3 Dec 2012 12:54:00 +0000 (13:54 +0100)]
ir: Remove unnecessary mode_b checks of Cond selectors.

All Conds are boolean.

11 years agocleanup: Remove pointless assert(is_${NODE}(x)) just before get_${NODE}_${FOO}(x...
Christoph Mallon [Mon, 3 Dec 2012 11:48:08 +0000 (12:48 +0100)]
cleanup: Remove pointless assert(is_${NODE}(x)) just before get_${NODE}_${FOO}(x), which do the same assert.

11 years agoFixed some typos.
Sebastian Buchwald [Mon, 3 Dec 2012 07:29:42 +0000 (08:29 +0100)]
Fixed some typos.

11 years agothe 1/c -> 1*c optimisation is fine for x86 floats too
Matthias Braun [Mon, 3 Dec 2012 00:19:21 +0000 (01:19 +0100)]
the 1/c -> 1*c optimisation is fine for x86 floats too

11 years agomark stores in int->float, float->int and float->float convs as spills
Matthias Braun [Mon, 3 Dec 2012 00:18:25 +0000 (01:18 +0100)]
mark stores in int->float, float->int and float->float convs as spills

That way the spill engine can rematerialize the loads and needs no
extra spills for these values.

11 years agoia32: Merge Store and Store8Bit.
Christoph Mallon [Sun, 2 Dec 2012 22:21:10 +0000 (23:21 +0100)]
ia32: Merge Store and Store8Bit.

11 years agoia32: Merge Conv_I2I and Conv_I2I8Bit.
Christoph Mallon [Sun, 2 Dec 2012 22:11:42 +0000 (23:11 +0100)]
ia32: Merge Conv_I2I and Conv_I2I8Bit.

11 years agoia32: Merge AddMem, AndMem, OrMem, SubMem and XorMem with their 8 bit variants.
Christoph Mallon [Sun, 2 Dec 2012 21:32:51 +0000 (22:32 +0100)]
ia32: Merge AddMem, AndMem, OrMem, SubMem and XorMem with their 8 bit variants.

11 years agoia32: Merge Cmp and Cmp8Bit.
Christoph Mallon [Sun, 2 Dec 2012 21:16:07 +0000 (22:16 +0100)]
ia32: Merge Cmp and Cmp8Bit.

11 years agoia32: Simplify binary emitters for binary operations now that test is handled extra.
Christoph Mallon [Sun, 2 Dec 2012 20:54:24 +0000 (21:54 +0100)]
ia32: Simplify binary emitters for binary operations now that test is handled extra.

11 years agoia32: Merge Test and Test8Bit.
Christoph Mallon [Sun, 2 Dec 2012 18:35:19 +0000 (19:35 +0100)]
ia32: Merge Test and Test8Bit.

11 years agoia32: Use a more logical specification of operand sizes in the binary emitter.
Christoph Mallon [Sun, 2 Dec 2012 17:57:13 +0000 (18:57 +0100)]
ia32: Use a more logical specification of operand sizes in the binary emitter.

11 years agobescripts: Copy all common node attributes into the constructor variants.
Christoph Mallon [Sun, 2 Dec 2012 13:16:38 +0000 (14:16 +0100)]
bescripts: Copy all common node attributes into the constructor variants.

11 years agoarm: Remove unused arity specification from nodes with constructors.
Christoph Mallon [Sun, 2 Dec 2012 12:56:32 +0000 (13:56 +0100)]
arm: Remove unused arity specification from nodes with constructors.

11 years agogenerate inline versions of node get/set functions
Matthias Braun [Sun, 2 Dec 2012 15:24:12 +0000 (16:24 +0100)]
generate inline versions of node get/set functions

11 years agoremove double definition of is_Proj/is_Phi
Matthias Braun [Sun, 2 Dec 2012 13:50:36 +0000 (14:50 +0100)]
remove double definition of is_Proj/is_Phi

11 years agoimplement load after store for different modes in big endian
Matthias Braun [Thu, 29 Nov 2012 21:45:56 +0000 (22:45 +0100)]
implement load after store for different modes in big endian

11 years agoconvert lower_mode_b to assure/confirm_irg_properties style
Matthias Braun [Thu, 29 Nov 2012 16:34:57 +0000 (17:34 +0100)]
convert lower_mode_b to assure/confirm_irg_properties style

11 years agoreassoc: Remove pointless macro indirection.
Christoph Mallon [Sun, 2 Dec 2012 11:33:33 +0000 (12:33 +0100)]
reassoc: Remove pointless macro indirection.

11 years agoopt_ldst: Remove the unused macro BYTE_SIZE().
Christoph Mallon [Sun, 2 Dec 2012 11:30:16 +0000 (12:30 +0100)]
opt_ldst: Remove the unused macro BYTE_SIZE().

11 years agocleanup: Remove end-of-if/for/function comments.
Christoph Mallon [Sun, 2 Dec 2012 11:28:15 +0000 (12:28 +0100)]
cleanup: Remove end-of-if/for/function comments.

11 years agoldstopt: Remove duplicate comments.
Christoph Mallon [Sun, 2 Dec 2012 11:17:40 +0000 (12:17 +0100)]
ldstopt: Remove duplicate comments.

The functions are documented in the header already.

11 years agosparc: Simplify finish_sparc_Return().
Christoph Mallon [Sun, 2 Dec 2012 11:12:13 +0000 (12:12 +0100)]
sparc: Simplify finish_sparc_Return().

11 years agoia32: Clean up peephole_ia32_Cmp().
Christoph Mallon [Sun, 2 Dec 2012 11:11:49 +0000 (12:11 +0100)]
ia32: Clean up peephole_ia32_Cmp().

11 years agobesched: Add and use sched_replace().
Christoph Mallon [Sun, 2 Dec 2012 11:11:34 +0000 (12:11 +0100)]
besched: Add and use sched_replace().

11 years agobe: Use sched_add_before(a, b) instead of sched_add_after(sched_prev(a), b).
Christoph Mallon [Sun, 2 Dec 2012 08:36:47 +0000 (09:36 +0100)]
be: Use sched_add_before(a, b) instead of sched_add_after(sched_prev(a), b).

11 years agoia32: Remove unnecessary tests from transform_to_Load() and transform_to_Store().
Christoph Mallon [Sun, 2 Dec 2012 08:34:35 +0000 (09:34 +0100)]
ia32: Remove unnecessary tests from transform_to_Load() and transform_to_Store().

The reload/spill is always scheduled, because we found it in the schedule.

11 years agobessadestr: Use be_get_end_of_block_insertion_point().
Christoph Mallon [Sun, 2 Dec 2012 08:30:59 +0000 (09:30 +0100)]
bessadestr: Use be_get_end_of_block_insertion_point().

11 years agobescripts: Use strings, instead of arrays, to buffer the generated code.
Christoph Mallon [Sat, 1 Dec 2012 22:10:25 +0000 (23:10 +0100)]
bescripts: Use strings, instead of arrays, to buffer the generated code.

11 years agobescripts: Set be_emit_nothing() as emitter, if the emitter string of a node is empty.
Christoph Mallon [Sat, 1 Dec 2012 22:08:00 +0000 (23:08 +0100)]
bescripts: Set be_emit_nothing() as emitter, if the emitter string of a node is empty.

11 years agobescripts: Remove support for emit templates.
Christoph Mallon [Sat, 1 Dec 2012 20:52:42 +0000 (21:52 +0100)]
bescripts: Remove support for emit templates.

11 years agobescripts: Remove unused execution unit specification.
Christoph Mallon [Sat, 1 Dec 2012 23:11:20 +0000 (00:11 +0100)]
bescripts: Remove unused execution unit specification.

11 years agobescripts: Remove unused features and stale uses of gone features.
Christoph Mallon [Sat, 1 Dec 2012 20:44:59 +0000 (21:44 +0100)]
bescripts: Remove unused features and stale uses of gone features.

11 years agoia32: Remove (empty) emitters from nodes, which should never be emitted.
Christoph Mallon [Sat, 1 Dec 2012 21:18:24 +0000 (22:18 +0100)]
ia32: Remove (empty) emitters from nodes, which should never be emitted.

11 years agoamd64: Simplify amd64_register_saved_by().
Christoph Mallon [Sat, 1 Dec 2012 19:48:57 +0000 (20:48 +0100)]
amd64: Simplify amd64_register_saved_by().

11 years agobeabi: Remove the unnecessary struct reg_node_map_t.
Christoph Mallon [Sat, 1 Dec 2012 17:56:39 +0000 (18:56 +0100)]
beabi: Remove the unnecessary struct reg_node_map_t.

The irn is unused.

11 years agobeabi: Remove unnecessary exclusion/inclusion of ignore registers from call/return.
Christoph Mallon [Sat, 1 Dec 2012 17:41:59 +0000 (18:41 +0100)]
beabi: Remove unnecessary exclusion/inclusion of ignore registers from call/return.

11 years agoia32: Do not ignore the floating point control word anymore and make it callee-save.
Christoph Mallon [Sat, 1 Dec 2012 16:55:24 +0000 (17:55 +0100)]
ia32: Do not ignore the floating point control word anymore and make it callee-save.

This corrects handling in bestate (non-ignore).
beabi attaches the fpcw to Start/Return due to being callee-save.
This was accidently done before due to being ignored.

11 years agoia32: Simplify ia32_register_saved_by().
Christoph Mallon [Sat, 1 Dec 2012 16:40:38 +0000 (17:40 +0100)]
ia32: Simplify ia32_register_saved_by().

This resolves a latent bug that the x87 noreg register was classified as caller save.
The local index of the given register was compared to the global index of the x87 noreg.

11 years agotemplate: Correct comment.
Christoph Mallon [Sat, 1 Dec 2012 15:13:26 +0000 (16:13 +0100)]
template: Correct comment.