libfirm
11 years agoFixed warnings.
Sebastian Buchwald [Mon, 16 Jul 2012 06:10:49 +0000 (08:10 +0200)]
Fixed warnings.

11 years agoAdd a wrapper macro for ir_nodehashmap_get(), which has the return type as additional...
Christoph Mallon [Fri, 13 Jul 2012 20:57:54 +0000 (22:57 +0200)]
Add a wrapper macro for ir_nodehashmap_get(), which has the return type as additional parameter.

11 years agoUse get_blocksched_entry().
Christoph Mallon [Fri, 13 Jul 2012 20:25:37 +0000 (22:25 +0200)]
Use get_blocksched_entry().

11 years agoAdd wrapper macros for pset_first() and pset_next(), which have the return type as...
Christoph Mallon [Fri, 13 Jul 2012 19:33:43 +0000 (21:33 +0200)]
Add wrapper macros for pset_first() and pset_next(), which have the return type as additional parameter.

11 years agoAdd the * for the type in foreach_pset() automatically.
Christoph Mallon [Fri, 13 Jul 2012 19:16:01 +0000 (21:16 +0200)]
Add the * for the type in foreach_pset() automatically.

11 years agoMake the pointer in the dump_*_FUNC typedefs explicit.
Christoph Mallon [Fri, 13 Jul 2012 19:08:23 +0000 (21:08 +0200)]
Make the pointer in the dump_*_FUNC typedefs explicit.

11 years agoLet foreach_pset() declare its iterator variable.
Christoph Mallon [Fri, 13 Jul 2012 11:55:40 +0000 (13:55 +0200)]
Let foreach_pset() declare its iterator variable.

11 years agoUse foreach_pset().
Christoph Mallon [Fri, 13 Jul 2012 11:33:21 +0000 (13:33 +0200)]
Use foreach_pset().

11 years agoRemove the unused ir/adt/iterator.[ch].
Christoph Mallon [Fri, 13 Jul 2012 10:51:28 +0000 (12:51 +0200)]
Remove the unused ir/adt/iterator.[ch].

11 years agoLet bitset_foreach() and bitset_foreach_clear() declare their iterator variables.
Christoph Mallon [Fri, 13 Jul 2012 10:41:45 +0000 (12:41 +0200)]
Let bitset_foreach() and bitset_foreach_clear() declare their iterator variables.

11 years agoRemove the unused macro sched_foreach_Phi().
Christoph Mallon [Fri, 13 Jul 2012 08:09:16 +0000 (10:09 +0200)]
Remove the unused macro sched_foreach_Phi().

11 years agoLet sched_foreach_from() and sched_foreach_reverse_from() declare their iterator...
Christoph Mallon [Fri, 13 Jul 2012 08:08:20 +0000 (10:08 +0200)]
Let sched_foreach_from() and sched_foreach_reverse_from() declare their iterator variables.

11 years agoLet foreach_out_edge_kind() and foreach_out_edge_kind_safe() declare their iterator...
Christoph Mallon [Fri, 13 Jul 2012 07:35:51 +0000 (09:35 +0200)]
Let foreach_out_edge_kind() and foreach_out_edge_kind_safe() declare their iterator variables.

11 years agoUse foreach_out_edge_safe() instead of reimplementing it.
Christoph Mallon [Fri, 13 Jul 2012 07:33:12 +0000 (09:33 +0200)]
Use foreach_out_edge_safe() instead of reimplementing it.

11 years agoFix indentation.
Christoph Mallon [Fri, 13 Jul 2012 07:01:53 +0000 (09:01 +0200)]
Fix indentation.

11 years agoAdd ir_nodeset_first() to return the "first" node in an ir_nodeset.
Christoph Mallon [Fri, 13 Jul 2012 06:51:18 +0000 (08:51 +0200)]
Add ir_nodeset_first() to return the "first" node in an ir_nodeset.

11 years agoUse foreach_ir_nodeset() instead of reimplementing it.
Christoph Mallon [Fri, 13 Jul 2012 06:36:51 +0000 (08:36 +0200)]
Use foreach_ir_nodeset() instead of reimplementing it.

11 years agoLet co_gs_foreach_neighb() declare the iterator variable.
Christoph Mallon [Fri, 13 Jul 2012 06:48:34 +0000 (08:48 +0200)]
Let co_gs_foreach_neighb() declare the iterator variable.

11 years agoLet foreach_set() declare the iterator variable.
Christoph Mallon [Fri, 13 Jul 2012 06:30:25 +0000 (08:30 +0200)]
Let foreach_set() declare the iterator variable.

11 years agoUse -std=c99.
Christoph Mallon [Fri, 13 Jul 2012 06:30:02 +0000 (08:30 +0200)]
Use -std=c99.

11 years agoAdd wrapper macros for set_first() and set_next(), which have the return type as...
Christoph Mallon [Fri, 13 Jul 2012 06:22:22 +0000 (08:22 +0200)]
Add wrapper macros for set_first() and set_next(), which have the return type as additional parameter.

11 years agoAdd the return type as parameter to the macros set_find() and set_insert().
Christoph Mallon [Thu, 12 Jul 2012 17:26:10 +0000 (19:26 +0200)]
Add the return type as parameter to the macros set_find() and set_insert().

11 years agoUse foreach_set() instead of reimplementing it.
Christoph Mallon [Fri, 13 Jul 2012 05:56:30 +0000 (07:56 +0200)]
Use foreach_set() instead of reimplementing it.

11 years agoRemove duplicate implementation of foreach_set().
Christoph Mallon [Thu, 12 Jul 2012 17:59:01 +0000 (19:59 +0200)]
Remove duplicate implementation of foreach_set().

11 years agoAdd the * for the type in foreach_set() automatically.
Christoph Mallon [Fri, 13 Jul 2012 06:00:31 +0000 (08:00 +0200)]
Add the * for the type in foreach_set() automatically.

11 years agoDo not access memory after the end of an object.
Christoph Mallon [Thu, 12 Jul 2012 16:01:18 +0000 (18:01 +0200)]
Do not access memory after the end of an object.

11 years agoDirectly use pmap_get() instead of pmap_contains() + pmap_get().
Christoph Mallon [Thu, 12 Jul 2012 15:26:04 +0000 (17:26 +0200)]
Directly use pmap_get() instead of pmap_contains() + pmap_get().

11 years agoAdd a wrapper macro for pmap_get(), which has the return type as additional parameter.
Christoph Mallon [Thu, 12 Jul 2012 10:57:15 +0000 (12:57 +0200)]
Add a wrapper macro for pmap_get(), which has the return type as additional parameter.

11 years agoAdd a wrapper macro for ir_nodemap_get(), which has the return type as additional...
Christoph Mallon [Thu, 12 Jul 2012 10:56:49 +0000 (12:56 +0200)]
Add a wrapper macro for ir_nodemap_get(), which has the return type as additional parameter.

11 years agoRemove pointless casts.
Christoph Mallon [Fri, 13 Jul 2012 06:09:17 +0000 (08:09 +0200)]
Remove pointless casts.

The expressions have that type.

11 years agoRemove the unused macro co_gs_nodes_break().
Christoph Mallon [Fri, 13 Jul 2012 05:57:16 +0000 (07:57 +0200)]
Remove the unused macro co_gs_nodes_break().

11 years agoGet rid of an anonymous union.
Christoph Mallon [Thu, 12 Jul 2012 17:47:17 +0000 (19:47 +0200)]
Get rid of an anonymous union.

11 years agoRemove the declaration of the deleted function firm_default_hash().
Christoph Mallon [Thu, 12 Jul 2012 17:39:09 +0000 (19:39 +0200)]
Remove the declaration of the deleted function firm_default_hash().

11 years agoRemove the pointless if in if (pmap_get(k) != v) pmap_insert(k, v).
Christoph Mallon [Thu, 12 Jul 2012 15:34:39 +0000 (17:34 +0200)]
Remove the pointless if in if (pmap_get(k) != v) pmap_insert(k, v).

11 years agoRemove the unnecessary perm_map.
Christoph Mallon [Thu, 12 Jul 2012 15:22:40 +0000 (17:22 +0200)]
Remove the unnecessary perm_map.

11 years agosimplify be_lv_foreach
Matthias Braun [Fri, 13 Jul 2012 20:09:58 +0000 (22:09 +0200)]
simplify be_lv_foreach

11 years agoremove write-only bitset
Matthias Braun [Fri, 13 Jul 2012 20:09:44 +0000 (22:09 +0200)]
remove write-only bitset

11 years agoadapt to -std=c99
Matthias Braun [Fri, 13 Jul 2012 20:02:50 +0000 (22:02 +0200)]
adapt to -std=c99

11 years agoremove old #undef
Matthias Braun [Fri, 13 Jul 2012 19:31:52 +0000 (21:31 +0200)]
remove old #undef

11 years agomove domfront from be to ana
Matthias Braun [Wed, 11 Jul 2012 11:46:36 +0000 (13:46 +0200)]
move domfront from be to ana

Also add a GRAPH_PROPERTY for the analysis state.

11 years agoremove unused block_attr.succ_head, cond_attr.default_proj
Matthias Braun [Wed, 11 Jul 2012 11:15:28 +0000 (13:15 +0200)]
remove unused block_attr.succ_head, cond_attr.default_proj

11 years agofix warning
Matthias Braun [Fri, 13 Jul 2012 09:43:14 +0000 (11:43 +0200)]
fix warning

11 years agoRemoved Tuple nodes hold by End node.
Sebastian Buchwald [Fri, 13 Jul 2012 15:57:51 +0000 (17:57 +0200)]
Removed Tuple nodes hold by End node.

11 years agorespect dependency edges in dead code elimination
Christopher Frieler [Tue, 3 Jul 2012 15:24:22 +0000 (17:24 +0200)]
respect dependency edges in dead code elimination

11 years agomake dependency edge handling more robust
Matthias Braun [Tue, 10 Jul 2012 20:19:21 +0000 (22:19 +0200)]
make dependency edge handling more robust

11 years agorework add_irn_dep, add delete_irn_dep
Matthias Braun [Tue, 10 Jul 2012 20:18:39 +0000 (22:18 +0200)]
rework add_irn_dep, add delete_irn_dep

- Setting dep edges to NULL is illegal now
- add_irn_dep is simpler but does not check for duplicates anymore

11 years agomake code C++ warning clean (again)
Matthias Braun [Tue, 10 Jul 2012 13:52:01 +0000 (15:52 +0200)]
make code C++ warning clean (again)

11 years agocleanup ia32_architecture (enum usage)
Matthias Braun [Tue, 10 Jul 2012 13:34:06 +0000 (15:34 +0200)]
cleanup ia32_architecture (enum usage)

11 years agobedwarf: always use custom abbrev numbers
Matthias Braun [Tue, 10 Jul 2012 12:27:15 +0000 (14:27 +0200)]
bedwarf: always use custom abbrev numbers

12 years agoirop: refactor node_ops registration code
Matthias Braun [Thu, 28 Jun 2012 11:49:58 +0000 (13:49 +0200)]
irop: refactor node_ops registration code

Get away from the strange set_default_XXX_op style and instead let the
code modules register their node ops directly.

12 years agoMake spiller more deterministic.
Manuel Mohr [Wed, 27 Jun 2012 12:01:07 +0000 (14:01 +0200)]
Make spiller more deterministic.

12 years agoFixed typo.
Manuel Mohr [Tue, 26 Jun 2012 13:28:43 +0000 (15:28 +0200)]
Fixed typo.

12 years agoAdd support for setting initial node number through debugging extension.
Manuel Mohr [Wed, 20 Jun 2012 11:51:15 +0000 (13:51 +0200)]
Add support for setting initial node number through debugging extension.

This also supports setting the initial node number to "rand", thereby
replacing randnodenr.

12 years agomake spiller more deterministic
Matthias Braun [Wed, 27 Jun 2012 11:00:18 +0000 (13:00 +0200)]
make spiller more deterministic

12 years agomake heur4 a bit more deterministic
Matthias Braun [Wed, 27 Jun 2012 10:45:04 +0000 (12:45 +0200)]
make heur4 a bit more deterministic

12 years agolong double has 4 byte alignment
Matthias Braun [Wed, 27 Jun 2012 10:44:47 +0000 (12:44 +0200)]
long double has 4 byte alignment

12 years agoOnly (IV - RC) is allowed for induction variables.
Sebastian Buchwald [Fri, 22 Jun 2012 17:43:37 +0000 (19:43 +0200)]
Only (IV - RC) is allowed for induction variables.

12 years agomake basic block scheduler more deterministic
Matthias Braun [Thu, 21 Jun 2012 14:15:49 +0000 (16:15 +0200)]
make basic block scheduler more deterministic

12 years agodisplay block node nr in verboseasm mode
Matthias Braun [Thu, 21 Jun 2012 14:15:34 +0000 (16:15 +0200)]
display block node nr in verboseasm mode

12 years agobespillslots: cleanup, make it deterministic
Matthias Braun [Thu, 21 Jun 2012 13:01:59 +0000 (15:01 +0200)]
bespillslots: cleanup, make it deterministic

12 years agomake compiler more deterministic by sorting Perm inputs
Matthias Braun [Thu, 21 Jun 2012 10:00:05 +0000 (12:00 +0200)]
make compiler more deterministic by sorting Perm inputs

12 years agonormalize Sync node by sorting their inputs
Matthias Braun [Thu, 21 Jun 2012 09:48:21 +0000 (11:48 +0200)]
normalize Sync node by sorting their inputs

This also makes the compiler alot more deterministic avoiding, lots of
"random" jumping around in series of stores and loads.

12 years agoavoid "Unknown" hacks with reroute_edges_except
Matthias Braun [Thu, 21 Jun 2012 09:47:17 +0000 (11:47 +0200)]
avoid "Unknown" hacks with reroute_edges_except

12 years agoiredges: introduce new reroute_edges_except
Matthias Braun [Thu, 21 Jun 2012 09:46:29 +0000 (11:46 +0200)]
iredges: introduce new reroute_edges_except

I expect this to be a common pattern

12 years agoRemove the unused flag irop_flag_always_opt.
Christoph Mallon [Tue, 19 Jun 2012 07:31:15 +0000 (09:31 +0200)]
Remove the unused flag irop_flag_always_opt.

12 years agoRemove the never read flag irop_flag_dump_noinput.
Christoph Mallon [Tue, 19 Jun 2012 07:20:26 +0000 (09:20 +0200)]
Remove the never read flag irop_flag_dump_noinput.

12 years agoRemove the never read flag irop_flag_labeled.
Christoph Mallon [Tue, 19 Jun 2012 07:11:45 +0000 (09:11 +0200)]
Remove the never read flag irop_flag_labeled.

12 years agoMark memory using nodes with "uses_memory".
Christoph Mallon [Mon, 18 Jun 2012 12:16:27 +0000 (14:16 +0200)]
Mark memory using nodes with "uses_memory".

12 years agoIt's spelled "ins", not "in".
Christoph Mallon [Mon, 18 Jun 2012 12:15:52 +0000 (14:15 +0200)]
It's spelled "ins", not "in".

12 years agoFor readability put empty lines between node specifications.
Christoph Mallon [Mon, 18 Jun 2012 12:09:26 +0000 (14:09 +0200)]
For readability put empty lines between node specifications.

12 years agoSimplify assertion.
Christoph Mallon [Tue, 19 Jun 2012 07:29:18 +0000 (09:29 +0200)]
Simplify assertion.

12 years agoRemove stale $Id$.
Christoph Mallon [Mon, 18 Jun 2012 13:56:25 +0000 (15:56 +0200)]
Remove stale $Id$.

12 years agoAllow spills in amd64_set_frame_entity(), too.
Christoph Mallon [Mon, 18 Jun 2012 14:34:52 +0000 (16:34 +0200)]
Allow spills in amd64_set_frame_entity(), too.

12 years agoAlways (instead of never) emit labels for basic blocks on AMD64.
Christoph Mallon [Mon, 18 Jun 2012 14:17:27 +0000 (16:17 +0200)]
Always (instead of never) emit labels for basic blocks on AMD64.

12 years agoMake test for superfluous And/Or removal in fp-vrp more general.
Christoph Mallon [Fri, 15 Jun 2012 20:30:14 +0000 (22:30 +0200)]
Make test for superfluous And/Or removal in fp-vrp more general.

12 years agoProjs are always in the same block as their preds
Matthias Braun [Fri, 15 Jun 2012 12:58:49 +0000 (14:58 +0200)]
Projs are always in the same block as their preds

12 years agoremove opt_manage, provide assure_irg_properties
Matthias Braun [Fri, 15 Jun 2012 12:55:46 +0000 (14:55 +0200)]
remove opt_manage, provide assure_irg_properties

The opt_manage framework didn't really do much except assuring that some
analysis info is computed before a pass starts. We can achieve this
simpler by providing an assure_irg_properties function.
This commit also fixes some places where analysis info was potentially
not invalidated before.

12 years agoremove return values from graph transformations
Matthias Braun [Fri, 15 Jun 2012 10:56:47 +0000 (12:56 +0200)]
remove return values from graph transformations

Noone was really using the return values anyway. This change makes the
API more consistent.

12 years agogen_docu: output 'None' for an empty flags list
Matthias Braun [Fri, 15 Jun 2012 09:26:24 +0000 (11:26 +0200)]
gen_docu: output 'None' for an empty flags list

12 years agofix warning
Matthias Braun [Fri, 15 Jun 2012 09:08:18 +0000 (11:08 +0200)]
fix warning

12 years agocfopt: code cleanup
Matthias Braun [Fri, 15 Jun 2012 08:55:00 +0000 (10:55 +0200)]
cfopt: code cleanup

12 years agorename edges_assure to assure_edges
Matthias Braun [Fri, 15 Jun 2012 00:02:39 +0000 (02:02 +0200)]
rename edges_assure to assure_edges

This makes it consistent with other firm analyse functions. Also removes
the unnecessary return value.

12 years agosplit graph state into properties and constraints
Matthias Braun [Thu, 14 Jun 2012 17:06:04 +0000 (19:06 +0200)]
split graph state into properties and constraints

graph_properties are things that a transformation may destroy but which
can be easily recalculated.

graph_constraints are set after lowering phases have been running and
forbid certain constructs that no (later) transformation is allowed to construct

12 years agoimprove Shl,Shr,Shrs documentation
Matthias Braun [Fri, 15 Jun 2012 09:19:43 +0000 (11:19 +0200)]
improve Shl,Shr,Shrs documentation

12 years agoRemove compound path initializers.
Christoph Mallon [Thu, 14 Jun 2012 13:25:08 +0000 (15:25 +0200)]
Remove compound path initializers.

12 years agoImplement eval_strcmp() for the new style initializers.
Christoph Mallon [Thu, 14 Jun 2012 06:36:07 +0000 (08:36 +0200)]
Implement eval_strcmp() for the new style initializers.

12 years agoFixed compile error in optimize build.
Sebastian Buchwald [Thu, 14 Jun 2012 09:53:09 +0000 (11:53 +0200)]
Fixed compile error in optimize build.

12 years agoRemove the local buffer from dbg_printf().
Christoph Mallon [Wed, 13 Jun 2012 14:45:16 +0000 (16:45 +0200)]
Remove the local buffer from dbg_printf().

12 years agoCorrect comment.
Christoph Mallon [Tue, 22 May 2012 08:11:52 +0000 (10:11 +0200)]
Correct comment.

12 years agofix warning
Matthias Braun [Wed, 13 Jun 2012 14:53:12 +0000 (16:53 +0200)]
fix warning

12 years agoremove deprecated support for bitfield masking
Matthias Braun [Wed, 13 Jun 2012 14:39:00 +0000 (16:39 +0200)]
remove deprecated support for bitfield masking

12 years agoremove extended basic block support
Matthias Braun [Wed, 13 Jun 2012 13:31:27 +0000 (15:31 +0200)]
remove extended basic block support

First it is unclear what is a good way to deconstruct a program into extended
basic blocks, also none of our optimizations works on extended basic
blocks.

12 years agodo not use current_ir_graph in irdump.c
Matthias Braun [Wed, 13 Jun 2012 13:27:17 +0000 (15:27 +0200)]
do not use current_ir_graph in irdump.c

12 years agodebugger: add randnode debug command
Matthias Braun [Wed, 13 Jun 2012 09:02:30 +0000 (11:02 +0200)]
debugger: add randnode debug command

This call initializes the node_nr with a random value on startup. This
lets you test wether the compile behaves deterministically regardless of
node numbers (which isn't always the case right now).

12 years agofix debugger tokenlist
Matthias Braun [Wed, 13 Jun 2012 09:01:50 +0000 (11:01 +0200)]
fix debugger tokenlist

12 years agoremove unnecessary revision thing
Matthias Braun [Wed, 13 Jun 2012 09:01:28 +0000 (11:01 +0200)]
remove unnecessary revision thing

12 years agoincrease dbg_printf buffer in debug/debugger.c
Matthias Braun [Wed, 13 Jun 2012 08:59:25 +0000 (10:59 +0200)]
increase dbg_printf buffer in debug/debugger.c

12 years agonormalize block numbers in assembler output
Matthias Braun [Wed, 6 Jun 2012 13:54:58 +0000 (15:54 +0200)]
normalize block numbers in assembler output

This makes the produced assembler independent from fragile node numbers.
It's also a little bit easier to read.

12 years agoattempt to make root_cmp of beschednormal more deterministic
Matthias Braun [Wed, 6 Jun 2012 11:40:38 +0000 (13:40 +0200)]
attempt to make root_cmp of beschednormal more deterministic

12 years agobe: introduce verboseasm flag (enabled by default)
Matthias Braun [Wed, 6 Jun 2012 09:12:46 +0000 (11:12 +0200)]
be: introduce verboseasm flag (enabled by default)

Also factor out code that emits the label and comment at the beginning
of a basic block.