libfirm
11 years agobecopyheur2: Cache the admissible registers eagerly.
Christoph Mallon [Sat, 15 Dec 2012 16:20:07 +0000 (17:20 +0100)]
becopyheur2: Cache the admissible registers eagerly.

11 years agobecopyheur2: Avoid all bitset copies in admissible_colors().
Christoph Mallon [Sat, 15 Dec 2012 16:13:17 +0000 (17:13 +0100)]
becopyheur2: Avoid all bitset copies in admissible_colors().

11 years agobecopyheur2: Avoid unnecessary copies of the admissible registers.
Christoph Mallon [Sat, 15 Dec 2012 16:00:10 +0000 (17:00 +0100)]
becopyheur2: Avoid unnecessary copies of the admissible registers.

11 years agobecopyheur2: Remove unnecessary indirection.
Christoph Mallon [Sat, 15 Dec 2012 15:49:55 +0000 (16:49 +0100)]
becopyheur2: Remove unnecessary indirection.

A register requirement knows its class.
There is no need to take a detour over the copyopt environment.

11 years agobecopyheur2: Use rbitset_copy_to_bitset().
Christoph Mallon [Sat, 15 Dec 2012 15:48:37 +0000 (16:48 +0100)]
becopyheur2: Use rbitset_copy_to_bitset().

11 years agobecopyopt: Reduce indirection.
Christoph Mallon [Sat, 15 Dec 2012 15:25:12 +0000 (16:25 +0100)]
becopyopt: Reduce indirection.

copy_opt_t already has the irg, no need to fetch the chordal_env_t first.

11 years agobecopyopt: Remove the attribute degree from struct affinity_node_t.
Christoph Mallon [Sat, 15 Dec 2012 15:21:00 +0000 (16:21 +0100)]
becopyopt: Remove the attribute degree from struct affinity_node_t.

The only user just tests, whether the list of neighbours is not empty.

11 years agobecopyheur2: Remove unused and write-only attributes.
Christoph Mallon [Sat, 15 Dec 2012 15:20:10 +0000 (16:20 +0100)]
becopyheur2: Remove unused and write-only attributes.

11 years agobecopyopt: Remove the unused attribute data from struct affinity_node_t.
Christoph Mallon [Sat, 15 Dec 2012 15:13:09 +0000 (16:13 +0100)]
becopyopt: Remove the unused attribute data from struct affinity_node_t.

11 years agobecopyheur: Remove the attribute ou from struct qnode_t.
Christoph Mallon [Sat, 15 Dec 2012 15:07:23 +0000 (16:07 +0100)]
becopyheur: Remove the attribute ou from struct qnode_t.

The first node of the max independent set is always the root node.

11 years agobecopyopt: Remove the attribute copy_opt_t* co from struct unit_t.
Christoph Mallon [Sat, 15 Dec 2012 14:59:27 +0000 (15:59 +0100)]
becopyopt: Remove the attribute copy_opt_t* co from struct unit_t.

11 years agobecopyopt: Fix typos in comments.
Christoph Mallon [Sat, 15 Dec 2012 13:40:25 +0000 (14:40 +0100)]
becopyopt: Fix typos in comments.

11 years agobecopyopt: Remove the unnecessary attribute name from struct copy_opt_t.
Christoph Mallon [Sat, 15 Dec 2012 13:38:29 +0000 (14:38 +0100)]
becopyopt: Remove the unnecessary attribute name from struct copy_opt_t.

11 years agobecopyheur: Reduce the number of -> indirections.
Christoph Mallon [Sat, 15 Dec 2012 13:17:42 +0000 (14:17 +0100)]
becopyheur: Reduce the number of -> indirections.

11 years agobecopyopt: Inline the thin wrapper nodes_interfere(), so we do not need to fetch...
Christoph Mallon [Sat, 15 Dec 2012 13:11:59 +0000 (14:11 +0100)]
becopyopt: Inline the thin wrapper nodes_interfere(), so we do not need to fetch the liveness info over and over again.

11 years agobeifg: Remove be_ifg_connected(), which is just a wrapper for be_values_interfere().
Christoph Mallon [Sat, 15 Dec 2012 12:57:01 +0000 (13:57 +0100)]
beifg: Remove be_ifg_connected(), which is just a wrapper for be_values_interfere().

11 years agobeifg: Simplify the implementation of be_ifg_foreach_node().
Christoph Mallon [Sat, 15 Dec 2012 11:57:03 +0000 (12:57 +0100)]
beifg: Simplify the implementation of be_ifg_foreach_node().

11 years agobeifg: Let be_ifg_foreach_node() declare its iterator internally.
Christoph Mallon [Sat, 15 Dec 2012 09:28:50 +0000 (10:28 +0100)]
beifg: Let be_ifg_foreach_node() declare its iterator internally.

11 years agobeifg: Remove the unused function be_ifg_nodes_break().
Christoph Mallon [Sat, 15 Dec 2012 09:16:42 +0000 (10:16 +0100)]
beifg: Remove the unused function be_ifg_nodes_break().

11 years agobeifg: Slightly simplify accumulating the results in be_ifg_stat().
Christoph Mallon [Sat, 15 Dec 2012 09:13:44 +0000 (10:13 +0100)]
beifg: Slightly simplify accumulating the results in be_ifg_stat().

11 years agobeifg: Simplify the quite complicated way to divide a number by 2 in be_ifg_stat().
Christoph Mallon [Sat, 15 Dec 2012 09:12:12 +0000 (10:12 +0100)]
beifg: Simplify the quite complicated way to divide a number by 2 in be_ifg_stat().

11 years agobechordal: Handle Phis more like live-ins instead of regular scheduled nodes in creat...
Christoph Mallon [Sat, 15 Dec 2012 08:23:07 +0000 (09:23 +0100)]
bechordal: Handle Phis more like live-ins instead of regular scheduled nodes in create_borders().

11 years agobechordal: assert(), instead of test, that the remaining nodes are live-in in create_...
Christoph Mallon [Fri, 14 Dec 2012 23:16:17 +0000 (00:16 +0100)]
bechordal: assert(), instead of test, that the remaining nodes are live-in in create_borders().

11 years agobepeephole: Inline be_peephole_new_node() into its only caller.
Christoph Mallon [Fri, 14 Dec 2012 22:08:22 +0000 (23:08 +0100)]
bepeephole: Inline be_peephole_new_node() into its only caller.

11 years agobechordal: Use an ir_nodeset_t instead of a bitset_t in create_borders().
Christoph Mallon [Fri, 14 Dec 2012 10:14:18 +0000 (11:14 +0100)]
bechordal: Use an ir_nodeset_t instead of a bitset_t in create_borders().

11 years agobesched: Add and use sched_foreach_reverse_safe().
Christoph Mallon [Fri, 14 Dec 2012 08:33:52 +0000 (09:33 +0100)]
besched: Add and use sched_foreach_reverse_safe().

11 years agobesched: Add and use sched_foreach_safe().
Christoph Mallon [Fri, 14 Dec 2012 08:28:56 +0000 (09:28 +0100)]
besched: Add and use sched_foreach_safe().

11 years agobesched: Use sched_foreach_{after,reverse_before}().
Christoph Mallon [Thu, 13 Dec 2012 20:12:25 +0000 (21:12 +0100)]
besched: Use sched_foreach_{after,reverse_before}().

11 years agoia32: Remove unnecessary test.
Christoph Mallon [Thu, 13 Dec 2012 20:12:03 +0000 (21:12 +0100)]
ia32: Remove unnecessary test.

There is not (middleend) Start node in a graph at this point.

11 years agobesched: Change sched_foreach_reverse_from(sched_prev(x), y) to sched_foreach_reverse...
Christoph Mallon [Thu, 13 Dec 2012 20:11:21 +0000 (21:11 +0100)]
besched: Change sched_foreach_reverse_from(sched_prev(x), y) to sched_foreach_reverse_before(x, y).

11 years agobesched: Change sched_foreach_from(sched_next(x), y) to sched_foreach_after(x, y).
Christoph Mallon [Thu, 13 Dec 2012 20:06:01 +0000 (21:06 +0100)]
besched: Change sched_foreach_from(sched_next(x), y) to sched_foreach_after(x, y).

11 years agofix lower_calls sometimes not lowering method type
Matthias Braun [Wed, 12 Dec 2012 19:21:44 +0000 (20:21 +0100)]
fix lower_calls sometimes not lowering method type

This also allowed us to get rid of an unnecessary exception in
verify_Proj_Proj()

11 years agoremove license stuff from files
Matthias Braun [Wed, 12 Dec 2012 14:41:24 +0000 (15:41 +0100)]
remove license stuff from files

Just state the copyright and the project the files belong to. You can
then find the COPYING file for the whole project.

11 years agotr: Remove unnecessary test.
Christoph Mallon [Wed, 12 Dec 2012 17:27:59 +0000 (18:27 +0100)]
tr: Remove unnecessary test.

The global type is final, so the next test bails out.

11 years agoverify: Clarify assertion message.
Christoph Mallon [Wed, 12 Dec 2012 16:04:39 +0000 (17:04 +0100)]
verify: Clarify assertion message.

11 years agodocumentation: Remove explicit filename after @file.
Christoph Mallon [Wed, 12 Dec 2012 11:44:51 +0000 (12:44 +0100)]
documentation: Remove explicit filename after @file.

11 years agodocumentation: Update stale comments of new_{r,rd}_Const_long().
Christoph Mallon [Wed, 12 Dec 2012 10:17:23 +0000 (11:17 +0100)]
documentation: Update stale comments of new_{r,rd}_Const_long().

11 years agotr: Remove the unused type_info from class types.
Christoph Mallon [Wed, 12 Dec 2012 10:05:23 +0000 (11:05 +0100)]
tr: Remove the unused type_info from class types.

Accordingly remove repr_class from entities.

11 years agoirverify: allow Proj mode_P for array parameters
Matthias Braun [Tue, 11 Dec 2012 12:02:35 +0000 (13:02 +0100)]
irverify: allow Proj mode_P for array parameters

(This really shouldn't be allowed but until lower_calls is fixed this
should at least get complex working on sparc/arm)

11 years agotr: Ensure that all entities have an owner.
Christoph Mallon [Wed, 12 Dec 2012 09:32:00 +0000 (10:32 +0100)]
tr: Ensure that all entities have an owner.

11 years agocleanup: Do not re-fetch values, which we have already.
Christoph Mallon [Wed, 12 Dec 2012 09:06:59 +0000 (10:06 +0100)]
cleanup: Do not re-fetch values, which we have already.

11 years agotr: Add and use new_type_segment().
Christoph Mallon [Wed, 12 Dec 2012 09:05:08 +0000 (10:05 +0100)]
tr: Add and use new_type_segment().

In particular this ensures that the backend has segments for the PIC symbols and trampolines.

11 years agodocumentation: Update information about ir_graph.
Christoph Mallon [Mon, 10 Dec 2012 21:56:35 +0000 (22:56 +0100)]
documentation: Update information about ir_graph.

11 years agoinlining array types is the same as inlining compound types
Matthias Braun [Tue, 11 Dec 2012 10:12:25 +0000 (11:12 +0100)]
inlining array types is the same as inlining compound types

11 years agolower array types as arguments/results like compound types
Matthias Braun [Wed, 28 Nov 2012 22:59:05 +0000 (23:59 +0100)]
lower array types as arguments/results like compound types

11 years agoverify that we have sensible entities in symconst/sel nodes
Matthias Braun [Wed, 5 Dec 2012 20:40:56 +0000 (21:40 +0100)]
verify that we have sensible entities in symconst/sel nodes

11 years agotv: Let sc_comp() return an ir_relation instead of magic numbers.
Christoph Mallon [Sat, 8 Dec 2012 21:50:21 +0000 (22:50 +0100)]
tv: Let sc_comp() return an ir_relation instead of magic numbers.

11 years agotv: Let fc_comp() return an ir_relation instead of magic numbers.
Christoph Mallon [Sat, 8 Dec 2012 21:40:25 +0000 (22:40 +0100)]
tv: Let fc_comp() return an ir_relation instead of magic numbers.

11 years agotv: Correct tarval_abs(): |-0.0| and |-NAN| result in +0.0 and +NAN now.
Christoph Mallon [Sat, 8 Dec 2012 21:37:58 +0000 (22:37 +0100)]
tv: Correct tarval_abs(): |-0.0| and |-NAN| result in +0.0 and +NAN now.

11 years agodocumentation: Fix typos: s/temporal/temporary/.
Christoph Mallon [Sat, 8 Dec 2012 21:32:02 +0000 (22:32 +0100)]
documentation: Fix typos: s/temporal/temporary/.

11 years agobeifg: Let be_ifg_foreach_node() declare the node variable.
Christoph Mallon [Fri, 7 Dec 2012 10:24:15 +0000 (11:24 +0100)]
beifg: Let be_ifg_foreach_node() declare the node variable.

11 years agobeifg: Let be_ifg_foreach_neighbour() declare the node variable.
Christoph Mallon [Fri, 7 Dec 2012 10:20:18 +0000 (11:20 +0100)]
beifg: Let be_ifg_foreach_neighbour() declare the node variable.

11 years agobechordal: Do not re-fetch a value, which we already have.
Christoph Mallon [Fri, 7 Dec 2012 07:38:55 +0000 (08:38 +0100)]
bechordal: Do not re-fetch a value, which we already have.

11 years agoirpass: Remove strange suffix ".svg" from graph dump names.
Christoph Mallon [Fri, 7 Dec 2012 06:03:12 +0000 (07:03 +0100)]
irpass: Remove strange suffix ".svg" from graph dump names.

11 years agoia32: When optimising for size, use cwtd and cltd instead of disabling them.
Christoph Mallon [Fri, 7 Dec 2012 05:21:32 +0000 (06:21 +0100)]
ia32: When optimising for size, use cwtd and cltd instead of disabling them.

11 years agodump: Remove extra leading dashes from dump suffixes.
Christoph Mallon [Fri, 7 Dec 2012 05:14:44 +0000 (06:14 +0100)]
dump: Remove extra leading dashes from dump suffixes.

11 years agoiropt: Remove repeated get_irn_irg().
Christoph Mallon [Thu, 6 Dec 2012 15:10:07 +0000 (16:10 +0100)]
iropt: Remove repeated get_irn_irg().

11 years agoirgmod: Pass the new inputs to turn_into_tuple() instead of initialising them with...
Christoph Mallon [Thu, 6 Dec 2012 14:47:40 +0000 (15:47 +0100)]
irgmod: Pass the new inputs to turn_into_tuple() instead of initialising them with Bad and setting them afterwards.

11 years agoopt_inline: Move all start block placed nodes to the callee's start block, not just...
Christoph Mallon [Thu, 6 Dec 2012 11:49:43 +0000 (12:49 +0100)]
opt_inline: Move all start block placed nodes to the callee's start block, not just the constlike nodes.

11 years agoiredges: Remove the unused function get_irn_edge_kind().
Christoph Mallon [Thu, 6 Dec 2012 05:53:56 +0000 (06:53 +0100)]
iredges: Remove the unused function get_irn_edge_kind().

11 years agolibcore: Remove LC_OPT_ENT_NEGBOOL() and LC_OPT_ENT_NEGBIT().
Christoph Mallon [Thu, 6 Dec 2012 05:33:02 +0000 (06:33 +0100)]
libcore: Remove LC_OPT_ENT_NEGBOOL() and LC_OPT_ENT_NEGBIT().

Avoid negative switches.

11 years agoia32: Change the command line switch "nooptcc" to "optcc".
Christoph Mallon [Thu, 6 Dec 2012 05:25:32 +0000 (06:25 +0100)]
ia32: Change the command line switch "nooptcc" to "optcc".

Avoid negative switches.

11 years agolibcore: Check, that a pointer to a char array is passed to LC_OPT_ENT_STR().
Christoph Mallon [Thu, 6 Dec 2012 05:23:51 +0000 (06:23 +0100)]
libcore: Check, that a pointer to a char array is passed to LC_OPT_ENT_STR().

11 years agovalueset: Slightly simplify foreach_valueset().
Christoph Mallon [Wed, 5 Dec 2012 13:45:29 +0000 (14:45 +0100)]
valueset: Slightly simplify foreach_valueset().

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