libfirm
13 years agoavoid verifier warnings in sparc by explicitely modeling RestoreZero using the frame...
Matthias Braun [Mon, 7 Mar 2011 19:01:17 +0000 (20:01 +0100)]
avoid verifier warnings in sparc by explicitely modeling RestoreZero using the frame pointer

13 years agobestack: remove unnecessary keep edges from IncSP nodes
Matthias Braun [Mon, 7 Mar 2011 13:47:07 +0000 (14:47 +0100)]
bestack: remove unnecessary keep edges from IncSP nodes

13 years agobestack: add support for nodes resetting the stack
Matthias Braun [Mon, 7 Mar 2011 13:46:34 +0000 (14:46 +0100)]
bestack: add support for nodes resetting the stack

13 years agofix sparc_finish missing Ldf/Stf
Matthias Braun [Wed, 16 Mar 2011 09:12:38 +0000 (10:12 +0100)]
fix sparc_finish missing Ldf/Stf

13 years agomethods need no offset
Eduard Frank [Tue, 15 Mar 2011 14:46:33 +0000 (15:46 +0100)]
methods need no offset

13 years agodon't emit .space with 0 bytes
Matthias Braun [Mon, 14 Mar 2011 15:15:00 +0000 (16:15 +0100)]
don't emit .space with 0 bytes

13 years agobetranshlp: avoid current_ir_graph, fix missing node_elimination hook
Matthias Braun [Tue, 8 Mar 2011 12:38:11 +0000 (13:38 +0100)]
betranshlp: avoid current_ir_graph, fix missing node_elimination hook

13 years agoallocate spillslots at beginning/end of stackframe depending on omit_fp mode
Matthias Braun [Mon, 7 Mar 2011 19:05:11 +0000 (20:05 +0100)]
allocate spillslots at beginning/end of stackframe depending on omit_fp mode

13 years agoremove old spillslot coalescing API
Matthias Braun [Mon, 7 Mar 2011 18:56:37 +0000 (19:56 +0100)]
remove old spillslot coalescing API

13 years agobetranshlp: cleanup, pretransform end node so keep_alive works in transformers
Matthias Braun [Mon, 7 Mar 2011 19:02:13 +0000 (20:02 +0100)]
betranshlp: cleanup, pretransform end node so keep_alive works in transformers

13 years agodumper now dumps all generic backend flags
Matthias Braun [Mon, 7 Mar 2011 15:46:37 +0000 (16:46 +0100)]
dumper now dumps all generic backend flags

13 years agofix missing keep walker missing some cases
Matthias Braun [Mon, 7 Mar 2011 13:15:00 +0000 (14:15 +0100)]
fix missing keep walker missing some cases

13 years agoremove more barrier handling code
Matthias Braun [Mon, 7 Mar 2011 12:47:04 +0000 (13:47 +0100)]
remove more barrier handling code

13 years agoia32: add some asserts for the pre_transform step
Matthias Braun [Tue, 8 Mar 2011 16:00:56 +0000 (17:00 +0100)]
ia32: add some asserts for the pre_transform step

13 years agoreplace and kill survive_dce stuff
Matthias Braun [Tue, 8 Mar 2011 14:58:08 +0000 (15:58 +0100)]
replace and kill survive_dce stuff

13 years agoAdding some comments to ifconv.c
Andreas Zwinkau [Wed, 16 Mar 2011 14:19:31 +0000 (15:19 +0100)]
Adding some comments to ifconv.c

13 years agoAdapt documentation to implementation
Andreas Zwinkau [Wed, 16 Mar 2011 12:30:36 +0000 (13:30 +0100)]
Adapt documentation to implementation

Depending on definitions there is 0,1, or many immediate postdominators
in an endless loop. Our implementation also walks Keep edges, so there
is 1 postdominator.

13 years agoHandle if-conversion within endless loops properly by stopping the recursion when...
Christoph Mallon [Wed, 16 Mar 2011 14:40:01 +0000 (15:40 +0100)]
Handle if-conversion within endless loops properly by stopping the recursion when reaching the block with the conditional jump.

13 years agoSkip self-dependencies in ifconv
Andreas Zwinkau [Tue, 15 Mar 2011 15:58:45 +0000 (16:58 +0100)]
Skip self-dependencies in ifconv

Fixes C/unkept_loop.c and opt/fehler159.c

13 years agotypo
Andreas Zwinkau [Tue, 15 Mar 2011 15:39:55 +0000 (16:39 +0100)]
typo

13 years agoMake remove_compound_member() an official API method.
Michael Beck [Tue, 15 Mar 2011 02:56:15 +0000 (03:56 +0100)]
Make remove_compound_member() an official API method.

Needed by edgjfe.

13 years agoImproved 21ff67fb03f6a597f78ea76b77af206d8ad17e1a.
Michael Beck [Tue, 15 Mar 2011 02:55:28 +0000 (03:55 +0100)]
Improved 21ff67fb03f6a597f78ea76b77af206d8ad17e1a.

Make an if instead of a #if 0 on "broken" code and add an comment
that explains why the non-wroken code is not used now.

13 years agoHandle unoptimized end block smoothly.
Michael Beck [Tue, 15 Mar 2011 02:53:20 +0000 (03:53 +0100)]
Handle unoptimized end block smoothly.

Allow Bad predecessors of the end block. These are typically artifacts
of non-optimized control flow.

13 years agoFix polymorphic entity lookup in case method entities are not duplicated in every...
Julian Oppermann [Mon, 14 Mar 2011 14:56:00 +0000 (15:56 +0100)]
Fix polymorphic entity lookup in case method entities are not duplicated in every subclass.

13 years agoDisabled broken check on the inheritance representation.
Julian Oppermann [Mon, 14 Mar 2011 13:35:32 +0000 (14:35 +0100)]
Disabled broken check on the inheritance representation.

13 years agofixed size_t printing
Michael Beck [Fri, 11 Mar 2011 22:03:12 +0000 (23:03 +0100)]
fixed size_t printing

13 years agoFix typos in comments: s/it's/its/ and related corrections.
Christoph Mallon [Wed, 9 Mar 2011 14:17:15 +0000 (15:17 +0100)]
Fix typos in comments: s/it's/its/ and related corrections.

13 years agoFixed compile error in optimize build.
Sebastian Buchwald [Wed, 9 Mar 2011 09:53:00 +0000 (10:53 +0100)]
Fixed compile error in optimize build.

13 years agoFixed some typos.
Sebastian Buchwald [Wed, 9 Mar 2011 09:42:44 +0000 (10:42 +0100)]
Fixed some typos.

13 years agoC99 feature removed.
Michael Beck [Tue, 8 Mar 2011 23:49:31 +0000 (00:49 +0100)]
C99 feature removed.

13 years agofix bestate code not respecting prolog/epilog
Matthias Braun [Tue, 8 Mar 2011 11:53:12 +0000 (12:53 +0100)]
fix bestate code not respecting prolog/epilog

13 years agoremove some more code mentioning the Barrier
Matthias Braun [Mon, 7 Mar 2011 11:51:34 +0000 (12:51 +0100)]
remove some more code mentioning the Barrier

13 years agoFixed size_t related warnings.
Michael Beck [Sun, 6 Mar 2011 00:34:36 +0000 (01:34 +0100)]
Fixed size_t related warnings.

13 years agoRemoved C99 feature.
Michael Beck [Fri, 4 Mar 2011 20:11:17 +0000 (21:11 +0100)]
Removed C99 feature.

13 years agoamend to barrier removal
Matthias Braun [Fri, 4 Mar 2011 18:58:57 +0000 (19:58 +0100)]
amend to barrier removal

13 years agosparc: avoid explicitely querying the barrier
Matthias Braun [Wed, 2 Mar 2011 12:21:33 +0000 (13:21 +0100)]
sparc: avoid explicitely querying the barrier

13 years agosparc: improved IncSP/Save/Restore handling
Matthias Braun [Mon, 28 Feb 2011 18:43:07 +0000 (19:43 +0100)]
sparc: improved IncSP/Save/Restore handling

13 years agosparc: document authors
Matthias Braun [Thu, 24 Feb 2011 13:57:49 +0000 (14:57 +0100)]
sparc: document authors

13 years agosparc: factor out is_imm_encodeable
Matthias Braun [Thu, 24 Feb 2011 13:51:43 +0000 (14:51 +0100)]
sparc: factor out is_imm_encodeable

13 years agosparc: fix problems after recent firm updates
Matthias Braun [Thu, 24 Feb 2011 13:09:49 +0000 (14:09 +0100)]
sparc: fix problems after recent firm updates

13 years agodump graph after code-selection
Matthias Braun [Tue, 1 Mar 2011 13:23:48 +0000 (14:23 +0100)]
dump graph after code-selection

13 years agoremove be_Barrier and lots of hacks for maintaining it
Matthias Braun [Fri, 4 Mar 2011 16:31:41 +0000 (17:31 +0100)]
remove be_Barrier and lots of hacks for maintaining it

13 years agoremove unused be_add_remat function
Matthias Braun [Fri, 4 Mar 2011 16:03:33 +0000 (17:03 +0100)]
remove unused be_add_remat function

13 years agoadd priority classes to scheduler, create prolog and epilog classes
Matthias Braun [Fri, 4 Mar 2011 15:21:30 +0000 (16:21 +0100)]
add priority classes to scheduler, create prolog and epilog classes

13 years agofix backend nodes not copying flags correctly
Matthias Braun [Fri, 4 Mar 2011 15:20:30 +0000 (16:20 +0100)]
fix backend nodes not copying flags correctly

13 years agocleanup listscheduler code
Matthias Braun [Thu, 3 Mar 2011 14:57:06 +0000 (15:57 +0100)]
cleanup listscheduler code

13 years agobeabi: simplify fix_start_block, avoid links to replaced nodes through anchors
Matthias Braun [Thu, 3 Mar 2011 14:20:58 +0000 (15:20 +0100)]
beabi: simplify fix_start_block, avoid links to replaced nodes through anchors

13 years agoremove mostly unused/broken liveness tracking in scheduler
Matthias Braun [Thu, 3 Mar 2011 13:29:51 +0000 (14:29 +0100)]
remove mostly unused/broken liveness tracking in scheduler

13 years agocleanup and description in beinfo for middleend nodes
Matthias Braun [Thu, 3 Mar 2011 12:46:06 +0000 (13:46 +0100)]
cleanup and description in beinfo for middleend nodes

13 years agoremove to_appear_in_schedule function, use flags instead
Matthias Braun [Thu, 3 Mar 2011 12:12:42 +0000 (13:12 +0100)]
remove to_appear_in_schedule function, use flags instead

13 years agocleanup/flatten some backend options
Matthias Braun [Wed, 2 Mar 2011 14:51:57 +0000 (15:51 +0100)]
cleanup/flatten some backend options

13 years agorework schedulers to register similar like regallocators/spillers
Matthias Braun [Wed, 2 Mar 2011 14:38:57 +0000 (15:38 +0100)]
rework schedulers to register similar like regallocators/spillers

13 years agoremove support for schedule preparation steps (both are unmaintained and broken)
Matthias Braun [Wed, 2 Mar 2011 13:46:26 +0000 (14:46 +0100)]
remove support for schedule preparation steps (both are unmaintained and broken)

13 years agocleanup besched header
Matthias Braun [Wed, 2 Mar 2011 13:20:57 +0000 (14:20 +0100)]
cleanup besched header

13 years agokeep_alive_barrier operand used wrong block; schedule keep behind phi sequences
Matthias Braun [Wed, 2 Mar 2011 09:57:19 +0000 (10:57 +0100)]
keep_alive_barrier operand used wrong block; schedule keep behind phi sequences

13 years agoimprove some verify messages
Matthias Braun [Thu, 3 Mar 2011 14:20:26 +0000 (15:20 +0100)]
improve some verify messages

13 years agoremove delay slot handling from verifier code
Matthias Braun [Wed, 2 Mar 2011 09:51:57 +0000 (10:51 +0100)]
remove delay slot handling from verifier code
(they are not represented in the firm schedule)

13 years agokeeps behind a series of phis are fine
Matthias Braun [Wed, 2 Mar 2011 09:56:31 +0000 (10:56 +0100)]
keeps behind a series of phis are fine

13 years agoremove minir dump experiments
Matthias Braun [Wed, 2 Mar 2011 13:23:01 +0000 (14:23 +0100)]
remove minir dump experiments

13 years agoremove unmaintained/broken bespillbelady2
Matthias Braun [Wed, 2 Mar 2011 12:53:34 +0000 (13:53 +0100)]
remove unmaintained/broken bespillbelady2

13 years agofix code after TLS-type change
Matthias Braun [Fri, 4 Mar 2011 13:17:02 +0000 (14:17 +0100)]
fix code after TLS-type change

13 years agoFix some -Wmissing-declarations warnings
Matthias Braun [Thu, 3 Mar 2011 09:26:10 +0000 (10:26 +0100)]
Fix some -Wmissing-declarations warnings

13 years agofix more size_t warnings
Matthias Braun [Fri, 4 Mar 2011 12:04:36 +0000 (13:04 +0100)]
fix more size_t warnings

13 years agoadd compound parameter lower to lower_for_target
Matthias Braun [Fri, 4 Mar 2011 11:43:00 +0000 (12:43 +0100)]
add compound parameter lower to lower_for_target

13 years agoFixed size_t related warnings.
Michael Beck [Thu, 3 Mar 2011 21:43:58 +0000 (22:43 +0100)]
Fixed size_t related warnings.

13 years agoFurther pushed size_t: structure analysis uses size_t now.
Michael Beck [Thu, 3 Mar 2011 21:31:45 +0000 (22:31 +0100)]
Further pushed size_t: structure analysis uses size_t now.

- simplified code
- deleted macros and useless casts
- fixed some debug messages

13 years agoIterate over all segment types when detecting static allocated objects in rta.
Michael Beck [Thu, 3 Mar 2011 20:39:27 +0000 (21:39 +0100)]
Iterate over all segment types when detecting static allocated objects in rta.

13 years agoTLS type must be a struct type, as stated by the documentation.
Michael Beck [Thu, 3 Mar 2011 20:38:20 +0000 (21:38 +0100)]
TLS type must be a struct type, as stated by the documentation.

13 years agoFix rapid type analysis: TLS type is a class type.
Julian Oppermann [Thu, 3 Mar 2011 10:19:21 +0000 (11:19 +0100)]
Fix rapid type analysis: TLS type is a class type.

13 years agoFixed size_t related warnings.
Michael Beck [Wed, 2 Mar 2011 22:53:34 +0000 (23:53 +0100)]
Fixed size_t related warnings.

Fixed typo.

13 years agoFixed size_t related warnings.
Michael Beck [Wed, 2 Mar 2011 22:43:49 +0000 (23:43 +0100)]
Fixed size_t related warnings.

13 years agoFixed size_t related warnings in dumping code.
Michael Beck [Wed, 2 Mar 2011 22:38:08 +0000 (23:38 +0100)]
Fixed size_t related warnings in dumping code.

13 years agoFurther pushed size_t: callgraph functions uses size_t now.
Michael Beck [Wed, 2 Mar 2011 22:34:57 +0000 (23:34 +0100)]
Further pushed size_t: callgraph functions uses size_t now.

13 years agoFixed size_t related warnings.
Michael Beck [Wed, 2 Mar 2011 08:31:25 +0000 (09:31 +0100)]
Fixed size_t related warnings.

13 years agoFurther pushed size_t: trouts functions uses size_t now.
Michael Beck [Wed, 2 Mar 2011 08:30:52 +0000 (09:30 +0100)]
Further pushed size_t: trouts functions uses size_t now.

13 years agoFixed size_t related warnings.
Michael Beck [Tue, 1 Mar 2011 23:33:43 +0000 (00:33 +0100)]
Fixed size_t related warnings.

13 years agoFurther pushed size_t: ir_initializer_t uses size_t now.
Michael Beck [Tue, 1 Mar 2011 23:18:47 +0000 (00:18 +0100)]
Further pushed size_t: ir_initializer_t uses size_t now.

13 years agoFixed size_t related warnings.
Michael Beck [Tue, 1 Mar 2011 23:16:46 +0000 (00:16 +0100)]
Fixed size_t related warnings.

13 years agoC99 features removed.
Michael Beck [Tue, 1 Mar 2011 01:47:33 +0000 (02:47 +0100)]
C99 features removed.

13 years agofix warnings because compare_attr gets const nodes now
Matthias Braun [Mon, 28 Feb 2011 18:48:29 +0000 (19:48 +0100)]
fix warnings because compare_attr gets const nodes now

13 years agoia32: prefere != over < or > relation where possible
Matthias Braun [Mon, 28 Feb 2011 15:53:53 +0000 (16:53 +0100)]
ia32: prefere != over < or > relation where possible

13 years agofix amd64 backend since negated_relation may return unordered now
Matthias Braun [Mon, 28 Feb 2011 14:43:19 +0000 (15:43 +0100)]
fix amd64 backend since negated_relation may return unordered now

13 years agofix confirms being broken with Cmp changes
Matthias Braun [Mon, 28 Feb 2011 14:36:38 +0000 (15:36 +0100)]
fix confirms being broken with Cmp changes

13 years agoperform gigo first so no optimization sees bad inputs with wrong mode
Matthias Braun [Mon, 28 Feb 2011 12:26:25 +0000 (13:26 +0100)]
perform gigo first so no optimization sees bad inputs with wrong mode

13 years agofix mux_allowed expecting Proj(Cmp) instead of Cmp
Matthias Braun [Mon, 28 Feb 2011 12:26:10 +0000 (13:26 +0100)]
fix mux_allowed expecting Proj(Cmp) instead of Cmp

13 years agoFixed warning about strange position of be_Keeps in the schedule.
Sebastian Buchwald [Wed, 23 Feb 2011 16:04:44 +0000 (17:04 +0100)]
Fixed warning about strange position of be_Keeps in the schedule.

The warning arises from the removal of the barrier before peephole
optimization. An operand of the barrier is now kept by a new be_Keep
which is scheduled directly after the operand.

13 years agoFixed some typos.
Sebastian Buchwald [Thu, 17 Feb 2011 09:38:51 +0000 (10:38 +0100)]
Fixed some typos.

13 years agostarted adding a relation to the Cmp node
Matthias Braun [Mon, 31 Jan 2011 00:02:17 +0000 (01:02 +0100)]
started adding a relation to the Cmp node

13 years agoSimplified the code and fixed a comment.
Michael Beck [Thu, 24 Feb 2011 22:36:40 +0000 (22:36 +0000)]
Simplified the code and fixed a comment.

No functional change.

[r28460]

13 years agocombo uses now the node_cmp_attr_func for lambda.opcode.
Michael Beck [Thu, 24 Feb 2011 22:21:01 +0000 (22:21 +0000)]
combo uses now the node_cmp_attr_func for lambda.opcode.

This simplifies the code and removes some divergencies between the CSE and
combo.

[r28459]

13 years agoConstify node_cmp_attr_func.
Michael Beck [Thu, 24 Feb 2011 22:20:50 +0000 (22:20 +0000)]
Constify node_cmp_attr_func.

[r28458]

13 years agoSplit the divmod attribute into one div and one mod attribute.
Michael Beck [Thu, 24 Feb 2011 22:20:25 +0000 (22:20 +0000)]
Split the divmod attribute into one div and one mod attribute.

[r28457]

13 years agogeneralize bittest pattern
Matthias Braun [Thu, 24 Feb 2011 18:41:52 +0000 (19:41 +0100)]
generalize bittest pattern

13 years agodo gigo earlier to avoid optimisations seeing bad inputs with wrong more
Matthias Braun [Thu, 24 Feb 2011 18:17:02 +0000 (19:17 +0100)]
do gigo earlier to avoid optimisations seeing bad inputs with wrong more

13 years agofix a bunch of whitespace errors in headerfiles
Matthias Braun [Thu, 24 Feb 2011 12:00:10 +0000 (13:00 +0100)]
fix a bunch of whitespace errors in headerfiles

13 years agoUse Lea instead of Add in the ia32 transformer.
Christoph Mallon [Thu, 24 Feb 2011 14:30:17 +0000 (14:30 +0000)]
Use Lea instead of Add in the ia32 transformer.

[r28454]

13 years agoia32_Lea cannot use immediates, set the offset instead.
Christoph Mallon [Thu, 24 Feb 2011 14:30:15 +0000 (14:30 +0000)]
ia32_Lea cannot use immediates, set the offset instead.

[r28453]

13 years agofix broken bt instruction after ia32 cc rewrite
Matthias Braun [Thu, 24 Feb 2011 10:29:09 +0000 (10:29 +0000)]
fix broken bt instruction after ia32 cc rewrite

[r28447]

13 years agoFix beabi call sorting
Andreas Zwinkau [Tue, 22 Feb 2011 10:24:27 +0000 (10:24 +0000)]
Fix beabi call sorting

Difference of idx for Calls with no order relation is stable,
but may lead to circular dependencies. Fixed by looking at
the heights first.

Fixes backend/transform_loop.c (with -O0)

[r28436]

13 years agoremove confusing, unused and broken function
Matthias Braun [Mon, 21 Feb 2011 15:52:05 +0000 (15:52 +0000)]
remove confusing, unused and broken function

[r28435]