libfirm
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

11 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.

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

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

11 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.

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

11 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

11 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.

12 years agobe: expose be_options variable globally
Matthias Braun [Wed, 6 Jun 2012 09:12:30 +0000 (11:12 +0200)]
be: expose be_options variable globally

12 years agoBeautified GVN-PRE code.
Sebastian Buchwald [Wed, 16 May 2012 12:51:48 +0000 (14:51 +0200)]
Beautified GVN-PRE code.

12 years agocreate Bad instead of Phi0 for unreachable blocks
Matthias Braun [Wed, 16 May 2012 11:53:49 +0000 (13:53 +0200)]
create Bad instead of Phi0 for unreachable blocks

12 years agoRemove a stale comment.
Christoph Mallon [Mon, 14 May 2012 16:58:20 +0000 (18:58 +0200)]
Remove a stale comment.

It probably was true when the start block had itself as predecessor.

12 years agoRemove redundant operations from set_phi_arguments(): phi is always a Phi.
Christoph Mallon [Mon, 14 May 2012 16:57:10 +0000 (18:57 +0200)]
Remove redundant operations from set_phi_arguments(): phi is always a Phi.

12 years agoRemove the unused function be_emit_ident().
Christoph Mallon [Sun, 13 May 2012 10:45:38 +0000 (12:45 +0200)]
Remove the unused function be_emit_ident().

12 years agoUse be_emit_irprintf("%I", x) instead of be_emit_ident(x).
Christoph Mallon [Sun, 13 May 2012 10:41:30 +0000 (12:41 +0200)]
Use be_emit_irprintf("%I", x) instead of be_emit_ident(x).

12 years agoRemove be_emit_tarval().
Christoph Mallon [Sun, 13 May 2012 10:36:20 +0000 (12:36 +0200)]
Remove be_emit_tarval().

12 years agoUse be_emit_irprintf("%T", x) instead of be_emit_tarval().
Christoph Mallon [Sun, 13 May 2012 20:51:54 +0000 (22:51 +0200)]
Use be_emit_irprintf("%T", x) instead of be_emit_tarval().

12 years agoRemove the write-only attributes cg_backedge and in_cg from struct block_attr.
Christoph Mallon [Sun, 13 May 2012 10:29:10 +0000 (12:29 +0200)]
Remove the write-only attributes cg_backedge and in_cg from struct block_attr.

12 years agoRemove the unused macro constant SNPRINTF_BUF_LEN.
Christoph Mallon [Sun, 13 May 2012 10:27:53 +0000 (12:27 +0200)]
Remove the unused macro constant SNPRINTF_BUF_LEN.

12 years agoRemove redundant null-pointer test before free().
Christoph Mallon [Sun, 13 May 2012 07:06:19 +0000 (09:06 +0200)]
Remove redundant null-pointer test before free().

12 years agoResolve constness warning.
Christoph Mallon [Sun, 13 May 2012 11:05:58 +0000 (13:05 +0200)]
Resolve constness warning.

12 years agoFix Conv node signature in error message.
Julian Oppermann [Fri, 11 May 2012 09:22:46 +0000 (11:22 +0200)]
Fix Conv node signature in error message.

12 years agocopy comp_dir_value
Matthias Braun [Thu, 10 May 2012 21:38:08 +0000 (23:38 +0200)]
copy comp_dir_value

12 years agosparc: fix problem with compound return
Matthias Braun [Thu, 10 May 2012 20:44:04 +0000 (22:44 +0200)]
sparc: fix problem with compound return

12 years agoforbid to set current_block to Bad
Matthias Braun [Thu, 10 May 2012 19:36:44 +0000 (21:36 +0200)]
forbid to set current_block to Bad

This was used as a hack to mark unreachable code by some people, but it
is prefered to simply use a new Block without predecessors, or set NULL
if you have to.

12 years agoremove buffer restriction in be_emit_irprintf
Matthias Braun [Thu, 10 May 2012 17:07:42 +0000 (19:07 +0200)]
remove buffer restriction in be_emit_irprintf

12 years agoimprove docu of ir_visibility_external
Matthias Braun [Fri, 4 May 2012 13:48:37 +0000 (15:48 +0200)]
improve docu of ir_visibility_external

12 years agoTeach new_tarval_from_str_int() to parse binary numbers: 0[bB][01]+.
Christoph Mallon [Sun, 6 May 2012 18:17:06 +0000 (20:17 +0200)]
Teach new_tarval_from_str_int() to parse binary numbers: 0[bB][01]+.

12 years agoCorrect the documentation of new_tarval_from_str().
Christoph Mallon [Sun, 6 May 2012 18:04:33 +0000 (20:04 +0200)]
Correct the documentation of new_tarval_from_str().

12 years agoResolve shadowing warning.
Christoph Mallon [Sat, 5 May 2012 16:05:46 +0000 (18:05 +0200)]
Resolve shadowing warning.

12 years agoRemove unnecessary void cast.
Christoph Mallon [Sat, 5 May 2012 16:03:45 +0000 (18:03 +0200)]
Remove unnecessary void cast.

12 years agoCorrect indentation and excessive spacing.
Christoph Mallon [Sat, 5 May 2012 16:03:10 +0000 (18:03 +0200)]
Correct indentation and excessive spacing.

12 years agoCorrect typo in comment.
Christoph Mallon [Sat, 5 May 2012 15:59:10 +0000 (17:59 +0200)]
Correct typo in comment.

12 years agoDo not refetch a value, which we already have.
Christoph Mallon [Sat, 5 May 2012 15:58:05 +0000 (17:58 +0200)]
Do not refetch a value, which we already have.

12 years agoUnbreak emitting TLS variables in the binary ia32 emitter.
Christoph Mallon [Sun, 6 May 2012 06:02:10 +0000 (08:02 +0200)]
Unbreak emitting TLS variables in the binary ia32 emitter.

12 years agoChange tests for ir_visibility_external, which should really test for entity_has_defi...
Christoph Mallon [Sat, 5 May 2012 21:02:22 +0000 (23:02 +0200)]
Change tests for ir_visibility_external, which should really test for entity_has_definition(), since the meaning of ir_visibility_external changed.

For global variables defined in the current translation unit this restores that
- they are not accessed via trampolines when compiling PIC,
- they are not skipped when emitting debug info.

12 years agoUnbreak PIC: Only stop emitting a global without initializer after emitting its tramp...
Christoph Mallon [Sat, 5 May 2012 15:37:37 +0000 (17:37 +0200)]
Unbreak PIC: Only stop emitting a global without initializer after emitting its trampoline.

12 years agoimprove entity verifier
Matthias Braun [Fri, 4 May 2012 12:31:15 +0000 (14:31 +0200)]
improve entity verifier

12 years agoIntroduce IR_LINKAGE_NO_CODEGEN
Matthias Braun [Fri, 4 May 2012 12:30:03 +0000 (14:30 +0200)]
Introduce IR_LINKAGE_NO_CODEGEN

This is used to implement C99 "inline"/GNU89 "extern inline" ie. an
entity which is externally defined but where we know an inlineable
definition anyway.

12 years agoir_visibility cleanup
Matthias Braun [Thu, 3 May 2012 18:43:05 +0000 (20:43 +0200)]
ir_visibility cleanup

This commit removes the strange differentiation between
ir_visibility_external and ir_visibility_default. We now only have
ir_visibility_external for all symbols visible across compilation units.
You may or may not attach graphs/initializers to them.

12 years agofix entity_has_definition
Matthias Braun [Thu, 3 May 2012 18:37:15 +0000 (20:37 +0200)]
fix entity_has_definition

12 years agoEmit a \t before .globl.
Christoph Mallon [Thu, 3 May 2012 20:21:04 +0000 (22:21 +0200)]
Emit a \t before .globl.

12 years agofix problem with shared doubleword types
Matthias Braun [Fri, 27 Apr 2012 15:31:21 +0000 (17:31 +0200)]
fix problem with shared doubleword types

12 years agotrverify: cleanup, check irg.entity == entity.irg
Matthias Braun [Thu, 26 Apr 2012 17:58:08 +0000 (19:58 +0200)]
trverify: cleanup, check irg.entity == entity.irg

12 years agodon't fail when printing Sel with entity==NULL
Matthias Braun [Thu, 26 Apr 2012 16:32:27 +0000 (18:32 +0200)]
don't fail when printing Sel with entity==NULL

(This happens when you break on a Sel creation and the firm debugger
 tries to tell you about the created node)

12 years agodwarf: initial support for callframe and params
Matthias Braun [Wed, 25 Apr 2012 21:01:59 +0000 (23:01 +0200)]
dwarf: initial support for callframe and params

- We now always output dwarf3 so we can use DW_OP_call_frame_cfa and avoid
  construction location lists, but just reuse the callframe info lists.
- Backends have to emit debug info as callframe calculation changes:
  The ia32 backend has a preliminary implementation which assumes esp
  offset of frame_type_size at the beginning of a block (currently
  always true), the no-omit-fp mode assumes ebp relative addressing
  (which is correct except for the prolog/epilogue insns)

12 years agobedbgout, stabs: remove obsolete debug modules
Matthias Braun [Wed, 25 Apr 2012 20:52:07 +0000 (22:52 +0200)]
bedbgout, stabs: remove obsolete debug modules

Remove the stabs debugoutput code and with it all the complexity of a
modular debug output system. The only remaining debug output module is
dwarf.

12 years agorename dbg_set_dbg_info to dbg_location
Matthias Braun [Mon, 28 Nov 2011 11:45:05 +0000 (12:45 +0100)]
rename dbg_set_dbg_info to dbg_location

12 years agoadd dwarf register number to register description
Matthias Braun [Thu, 24 Nov 2011 23:22:34 +0000 (00:22 +0100)]
add dwarf register number to register description

12 years agomove custom_abbrevs enum back into bedwarf.c
Matthias Braun [Wed, 25 Apr 2012 13:55:41 +0000 (15:55 +0200)]
move custom_abbrevs enum back into bedwarf.c

It's an internal thing and nothing from the dwarf spec

12 years agofix documentation warnings
Matthias Braun [Wed, 25 Apr 2012 13:29:23 +0000 (15:29 +0200)]
fix documentation warnings

12 years agodebugger: cleanup, add dumpfilter, unify create
Matthias Braun [Wed, 25 Apr 2012 10:33:52 +0000 (12:33 +0200)]
debugger: cleanup, add dumpfilter, unify create

- the "create" command now catches new nodes, entities and types as
  their numbers are unique anyway

12 years agofix typo in comments
Matthias Braun [Wed, 25 Apr 2012 09:07:05 +0000 (11:07 +0200)]
fix typo in comments

12 years agoDWARF: Actually emit the list of files, not just the first filename over and over...
Christoph Mallon [Tue, 24 Apr 2012 20:36:46 +0000 (22:36 +0200)]
DWARF: Actually emit the list of files, not just the first filename over and over again, i.e. use index i, not 0.