Christoph Mallon [Mon, 18 Jun 2012 12:15:52 +0000 (14:15 +0200)]
It's spelled "ins", not "in".
Christoph Mallon [Mon, 18 Jun 2012 12:09:26 +0000 (14:09 +0200)]
For readability put empty lines between node specifications.
Christoph Mallon [Tue, 19 Jun 2012 07:29:18 +0000 (09:29 +0200)]
Simplify assertion.
Christoph Mallon [Mon, 18 Jun 2012 13:56:25 +0000 (15:56 +0200)]
Remove stale $Id$.
Christoph Mallon [Mon, 18 Jun 2012 14:34:52 +0000 (16:34 +0200)]
Allow spills in amd64_set_frame_entity(), too.
Christoph Mallon [Mon, 18 Jun 2012 14:17:27 +0000 (16:17 +0200)]
Always (instead of never) emit labels for basic blocks on AMD64.
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.
Matthias Braun [Fri, 15 Jun 2012 12:58:49 +0000 (14:58 +0200)]
Projs are always in the same block as their preds
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.
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.
Matthias Braun [Fri, 15 Jun 2012 09:26:24 +0000 (11:26 +0200)]
gen_docu: output 'None' for an empty flags list
Matthias Braun [Fri, 15 Jun 2012 09:08:18 +0000 (11:08 +0200)]
fix warning
Matthias Braun [Fri, 15 Jun 2012 08:55:00 +0000 (10:55 +0200)]
cfopt: code cleanup
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.
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
Matthias Braun [Fri, 15 Jun 2012 09:19:43 +0000 (11:19 +0200)]
improve Shl,Shr,Shrs documentation
Christoph Mallon [Thu, 14 Jun 2012 13:25:08 +0000 (15:25 +0200)]
Remove compound path initializers.
Christoph Mallon [Thu, 14 Jun 2012 06:36:07 +0000 (08:36 +0200)]
Implement eval_strcmp() for the new style initializers.
Sebastian Buchwald [Thu, 14 Jun 2012 09:53:09 +0000 (11:53 +0200)]
Fixed compile error in optimize build.
Christoph Mallon [Wed, 13 Jun 2012 14:45:16 +0000 (16:45 +0200)]
Remove the local buffer from dbg_printf().
Christoph Mallon [Tue, 22 May 2012 08:11:52 +0000 (10:11 +0200)]
Correct comment.
Matthias Braun [Wed, 13 Jun 2012 14:53:12 +0000 (16:53 +0200)]
fix warning
Matthias Braun [Wed, 13 Jun 2012 14:39:00 +0000 (16:39 +0200)]
remove deprecated support for bitfield masking
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.
Matthias Braun [Wed, 13 Jun 2012 13:27:17 +0000 (15:27 +0200)]
do not use current_ir_graph in irdump.c
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).
Matthias Braun [Wed, 13 Jun 2012 09:01:50 +0000 (11:01 +0200)]
fix debugger tokenlist
Matthias Braun [Wed, 13 Jun 2012 09:01:28 +0000 (11:01 +0200)]
remove unnecessary revision thing
Matthias Braun [Wed, 13 Jun 2012 08:59:25 +0000 (10:59 +0200)]
increase dbg_printf buffer in debug/debugger.c
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.
Matthias Braun [Wed, 6 Jun 2012 11:40:38 +0000 (13:40 +0200)]
attempt to make root_cmp of beschednormal more deterministic
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.
Matthias Braun [Wed, 6 Jun 2012 09:12:30 +0000 (11:12 +0200)]
be: expose be_options variable globally
Sebastian Buchwald [Wed, 16 May 2012 12:51:48 +0000 (14:51 +0200)]
Beautified GVN-PRE code.
Matthias Braun [Wed, 16 May 2012 11:53:49 +0000 (13:53 +0200)]
create Bad instead of Phi0 for unreachable blocks
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.
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.
Christoph Mallon [Sun, 13 May 2012 10:45:38 +0000 (12:45 +0200)]
Remove the unused function be_emit_ident().
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).
Christoph Mallon [Sun, 13 May 2012 10:36:20 +0000 (12:36 +0200)]
Remove 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().
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.
Christoph Mallon [Sun, 13 May 2012 10:27:53 +0000 (12:27 +0200)]
Remove the unused macro constant SNPRINTF_BUF_LEN.
Christoph Mallon [Sun, 13 May 2012 07:06:19 +0000 (09:06 +0200)]
Remove redundant null-pointer test before free().
Christoph Mallon [Sun, 13 May 2012 11:05:58 +0000 (13:05 +0200)]
Resolve constness warning.
Julian Oppermann [Fri, 11 May 2012 09:22:46 +0000 (11:22 +0200)]
Fix Conv node signature in error message.
Matthias Braun [Thu, 10 May 2012 21:38:08 +0000 (23:38 +0200)]
copy comp_dir_value
Matthias Braun [Thu, 10 May 2012 20:44:04 +0000 (22:44 +0200)]
sparc: fix problem with compound return
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.
Matthias Braun [Thu, 10 May 2012 17:07:42 +0000 (19:07 +0200)]
remove buffer restriction in be_emit_irprintf
Matthias Braun [Fri, 4 May 2012 13:48:37 +0000 (15:48 +0200)]
improve docu of ir_visibility_external
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]+.
Christoph Mallon [Sun, 6 May 2012 18:04:33 +0000 (20:04 +0200)]
Correct the documentation of new_tarval_from_str().
Christoph Mallon [Sat, 5 May 2012 16:05:46 +0000 (18:05 +0200)]
Resolve shadowing warning.
Christoph Mallon [Sat, 5 May 2012 16:03:45 +0000 (18:03 +0200)]
Remove unnecessary void cast.
Christoph Mallon [Sat, 5 May 2012 16:03:10 +0000 (18:03 +0200)]
Correct indentation and excessive spacing.
Christoph Mallon [Sat, 5 May 2012 15:59:10 +0000 (17:59 +0200)]
Correct typo in comment.
Christoph Mallon [Sat, 5 May 2012 15:58:05 +0000 (17:58 +0200)]
Do not refetch a value, which we already have.
Christoph Mallon [Sun, 6 May 2012 06:02:10 +0000 (08:02 +0200)]
Unbreak emitting TLS variables in the binary ia32 emitter.
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.
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.
Matthias Braun [Fri, 4 May 2012 12:31:15 +0000 (14:31 +0200)]
improve entity verifier
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.
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.
Matthias Braun [Thu, 3 May 2012 18:37:15 +0000 (20:37 +0200)]
fix entity_has_definition
Christoph Mallon [Thu, 3 May 2012 20:21:04 +0000 (22:21 +0200)]
Emit a \t before .globl.
Matthias Braun [Fri, 27 Apr 2012 15:31:21 +0000 (17:31 +0200)]
fix problem with shared doubleword types
Matthias Braun [Thu, 26 Apr 2012 17:58:08 +0000 (19:58 +0200)]
trverify: cleanup, check irg.entity == entity.irg
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)
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)
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.
Matthias Braun [Mon, 28 Nov 2011 11:45:05 +0000 (12:45 +0100)]
rename dbg_set_dbg_info to dbg_location
Matthias Braun [Thu, 24 Nov 2011 23:22:34 +0000 (00:22 +0100)]
add dwarf register number to register description
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
Matthias Braun [Wed, 25 Apr 2012 13:29:23 +0000 (15:29 +0200)]
fix documentation warnings
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
Matthias Braun [Wed, 25 Apr 2012 09:07:05 +0000 (11:07 +0200)]
fix typo in comments
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.
Christoph Mallon [Tue, 24 Apr 2012 20:21:53 +0000 (22:21 +0200)]
DWARF: Actually set the selected language, not always DW_LANG_C_plus_plus.
Christoph Mallon [Tue, 24 Apr 2012 20:16:15 +0000 (22:16 +0200)]
DWARF: Move the DWARF constants into a separate header.
Christoph Mallon [Tue, 24 Apr 2012 19:17:23 +0000 (21:17 +0200)]
DWARF: Also emit the column in the debug information.
Christoph Mallon [Tue, 24 Apr 2012 19:13:45 +0000 (21:13 +0200)]
DWARF: Factorise debug information format registration.
Christoph Mallon [Tue, 24 Apr 2012 18:42:40 +0000 (20:42 +0200)]
Add the column to the debug information.
Matthias Braun [Tue, 24 Apr 2012 16:53:59 +0000 (18:53 +0200)]
dwarf: setter for language and compilation dir
Matthias Braun [Tue, 24 Apr 2012 16:53:41 +0000 (18:53 +0200)]
dwarf: preliminary support for class-types
Matthias Braun [Tue, 24 Apr 2012 16:53:11 +0000 (18:53 +0200)]
dwarf: use ld_names instead of names
Christoph Mallon [Sat, 21 Apr 2012 18:06:22 +0000 (20:06 +0200)]
Make new_type() static.
Sebastian Buchwald [Tue, 17 Apr 2012 16:42:44 +0000 (18:42 +0200)]
Fixed wrong function type.
Matthias Braun [Tue, 17 Apr 2012 16:26:48 +0000 (18:26 +0200)]
ia32: remove pointless downconv skips in gen_Add
this fixes a bug, because match_arguments determines the operations
mode by looking at the passed operands, so they must still have the
original mode and not the mode after a skip_downconv.
Ingmar Wirths [Tue, 17 Apr 2012 12:52:51 +0000 (14:52 +0200)]
Control flow optimization: Merge consecutive blocks.
Merge a block with its only control flow predecessor,
if it contains no phi nodes and the block is the only successor of the predecessor.
Christoph Mallon [Sun, 25 Mar 2012 20:11:19 +0000 (22:11 +0200)]
Turn if (x) assert(y); into assert(!x || y);
Christoph Mallon [Sun, 25 Mar 2012 20:09:18 +0000 (22:09 +0200)]
Assert that [gs]et_{,r_}cur_block() are only called in phase_building.
Christoph Mallon [Thu, 15 Mar 2012 13:44:52 +0000 (14:44 +0100)]
Update/Correct documentation of kill_node().
Sebastian Buchwald [Sun, 25 Mar 2012 18:34:22 +0000 (20:34 +0200)]
Code placement cannot handle unreachable code.
Matthias Braun [Wed, 14 Mar 2012 12:16:34 +0000 (13:16 +0100)]
fix sparc backend restore node
Christoph Mallon [Tue, 13 Mar 2012 13:53:19 +0000 (14:53 +0100)]
Reduce code duplication.
Matthias Braun [Mon, 12 Mar 2012 18:31:12 +0000 (19:31 +0100)]
support for variable sized compound/array types
This adds support for C99/gcc style compound types where the last
element is an array of unspecified size. The compound size is the
minimum size (assuming the array has no elements), or is calculated
by the size of an initializer.
Christoph Mallon [Fri, 9 Mar 2012 12:32:11 +0000 (13:32 +0100)]
Add missing FIRM_API.
Christoph Mallon [Fri, 9 Mar 2012 09:51:58 +0000 (10:51 +0100)]
Fix typo in comment.
Christoph Mallon [Fri, 9 Mar 2012 09:46:31 +0000 (10:46 +0100)]
Remove ia32_code_gen_config_t::use_ftst.
ftst is always available and faster than fldz+fucom.