libfirm
12 years agoimplement aggregate returns according to sparc ABI
Matthias Braun [Fri, 12 Aug 2011 11:30:22 +0000 (13:30 +0200)]
implement aggregate returns according to sparc ABI

12 years agocustom stack bias code for sparc
Matthias Braun [Thu, 11 Aug 2011 12:35:43 +0000 (14:35 +0200)]
custom stack bias code for sparc

12 years agosparc: fix float calling conventions
Matthias Braun [Thu, 11 Aug 2011 12:36:53 +0000 (14:36 +0200)]
sparc: fix float calling conventions

12 years agosparc: fix mode of fdiv result
Matthias Braun [Thu, 11 Aug 2011 13:32:00 +0000 (15:32 +0200)]
sparc: fix mode of fdiv result

12 years agosparc: fix wrong incsp in omit-fp mode
Matthias Braun [Tue, 9 Aug 2011 07:59:45 +0000 (09:59 +0200)]
sparc: fix wrong incsp in omit-fp mode

12 years agofix names of some dumped vcg files
Matthias Braun [Tue, 9 Aug 2011 07:54:25 +0000 (09:54 +0200)]
fix names of some dumped vcg files

12 years agosparc: floatingpoint flags producing nodes have 1 cycle delay, add an ad-hoc fix...
Matthias Braun [Mon, 8 Aug 2011 15:03:04 +0000 (17:03 +0200)]
sparc: floatingpoint flags producing nodes have 1 cycle delay, add an ad-hoc fix for that

12 years agofix sparc fneg instruction emitter
Matthias Braun [Mon, 8 Aug 2011 15:01:54 +0000 (17:01 +0200)]
fix sparc fneg instruction emitter

12 years agoavoid generic names like flags in generator
Matthias Braun [Wed, 27 Jul 2011 10:53:10 +0000 (12:53 +0200)]
avoid generic names like flags in generator

12 years agoImplement double-register support for prefalloc with an ILP method
Matthias Braun [Fri, 15 Jul 2011 12:10:41 +0000 (14:10 +0200)]
Implement double-register support for prefalloc with an ILP method

12 years agouse 'default' ilp solver if nothing specified
Matthias Braun [Mon, 25 Jul 2011 13:52:20 +0000 (15:52 +0200)]
use 'default' ilp solver if nothing specified

12 years agolpp: only read solution in gurobi solver if one was found
Matthias Braun [Fri, 15 Jul 2011 12:10:05 +0000 (14:10 +0200)]
lpp: only read solution in gurobi solver if one was found

12 years agolpp: call the constraint types lpp_{less|greater}_equal because they are a {less...
Matthias Braun [Fri, 15 Jul 2011 12:01:30 +0000 (14:01 +0200)]
lpp: call the constraint types lpp_{less|greater}_equal because they are a {less|greater} equal operation

12 years agoconsistently give all lpp functions an lpp_ prefix
Matthias Braun [Fri, 15 Jul 2011 11:38:03 +0000 (13:38 +0200)]
consistently give all lpp functions an lpp_ prefix

12 years agolpp: use inline functions instead of macros
Matthias Braun [Fri, 15 Jul 2011 11:36:08 +0000 (13:36 +0200)]
lpp: use inline functions instead of macros

12 years agolpp: add firm copyright header, some cleanups
Matthias Braun [Thu, 14 Jul 2011 11:48:00 +0000 (13:48 +0200)]
lpp: add firm copyright header, some cleanups

12 years agofix cparser warnings in beprefalloc
Matthias Braun [Wed, 15 Jun 2011 11:35:38 +0000 (13:35 +0200)]
fix cparser warnings in beprefalloc

12 years agoprefalloc will respect alignment when initially assigning registers
Matthias Braun [Fri, 17 Sep 2010 11:37:03 +0000 (13:37 +0200)]
prefalloc will respect alignment when initially assigning registers

12 years agodo not sign_extend too early in tarval_convert_to
Matthias Braun [Fri, 12 Aug 2011 16:31:48 +0000 (18:31 +0200)]
do not sign_extend too early in tarval_convert_to

12 years agosimplify/remove unnecessary complicated copy-pasta code
Matthias Braun [Thu, 11 Aug 2011 11:59:17 +0000 (13:59 +0200)]
simplify/remove unnecessary complicated copy-pasta code

12 years agomerge after_ra and finish phase, and move stack_bias fixing into backends
Matthias Braun [Thu, 11 Aug 2011 11:46:15 +0000 (13:46 +0200)]
merge after_ra and finish phase, and move stack_bias fixing into backends

12 years agoAdded soft float support for IA32 backend.
Sebastian Buchwald [Thu, 11 Aug 2011 13:26:39 +0000 (15:26 +0200)]
Added soft float support for IA32 backend.

12 years agoImplemented floating point lowering to Calls into a soft float library.
Sebastian Buchwald [Thu, 11 Aug 2011 12:18:48 +0000 (14:18 +0200)]
Implemented floating point lowering to Calls into a soft float library.

12 years agoFix size_t related warnings
Andreas Zwinkau [Fri, 12 Aug 2011 09:02:16 +0000 (11:02 +0200)]
Fix size_t related warnings

12 years agoInliner must not inline parameter entities
Andreas Zwinkau [Fri, 12 Aug 2011 08:17:57 +0000 (10:17 +0200)]
Inliner must not inline parameter entities

This reverts commit a63fa62c9468f8af3fa6b16001912de9c9c472af.

While the inliner could do this right,
the fix for now is to not inline such functions.

12 years agoInliner must clear parameter flag of entities
Andreas Zwinkau [Thu, 11 Aug 2011 14:12:31 +0000 (16:12 +0200)]
Inliner must clear parameter flag of entities

12 years agoalso change mode_P when setting a new modeP_data
Matthias Braun [Wed, 10 Aug 2011 08:57:32 +0000 (10:57 +0200)]
also change mode_P when setting a new modeP_data

12 years agolet backends specify the complete long double type
Matthias Braun [Tue, 9 Aug 2011 08:48:13 +0000 (10:48 +0200)]
let backends specify the complete long double type

12 years agoallow setting primitive type size so we can model things like 'long double' size...
Matthias Braun [Wed, 10 Aug 2011 07:58:24 +0000 (09:58 +0200)]
allow setting primitive type size so we can model things like 'long double' size 16 with mode_E

12 years agoDirectly create Start/Return node in sparc backend
Matthias Braun [Mon, 8 Aug 2011 14:50:56 +0000 (16:50 +0200)]
Directly create Start/Return node in sparc backend

Since we have no complicated barrier/prolog stuff in the transform phase
anymore we can move away from beabihelper now and create the nodes
directly which will be necessary when modeling special constraints like
wide aligned registers.

12 years agofactor out code for address of register param taken
Matthias Braun [Fri, 5 Aug 2011 13:33:28 +0000 (15:33 +0200)]
factor out code for address of register param taken

So sparc can handle this case now.

12 years agomaintain method types variadicity,properties,calling convention when modifying them
Matthias Braun [Fri, 5 Aug 2011 09:06:45 +0000 (11:06 +0200)]
maintain method types variadicity,properties,calling convention when modifying them

12 years agorework taking of parameter addresses
Matthias Braun [Fri, 5 Aug 2011 08:58:44 +0000 (10:58 +0200)]
rework taking of parameter addresses

Use a special kind of entity on the frame type instead of a value_type
struct inside a method type. This makes replacement of function types
slightly easier (it's still a complex operation though) and handling in
the backend a bit more consistent since it's more or less a normal stack
access (with special offsets).

12 years agosimplify/rework lower_calls interface and code
Matthias Braun [Fri, 5 Aug 2011 08:22:30 +0000 (10:22 +0200)]
simplify/rework lower_calls interface and code

This was done by removing unnecessary options/options that only
allowed marginal tweakings to improve performance while at the same time
making the interface cumbersome.

12 years agoa few cleanups in scalar replacement code
Matthias Braun [Thu, 4 Aug 2011 17:17:52 +0000 (19:17 +0200)]
a few cleanups in scalar replacement code

12 years agoremove (broken+unused) support for right_to_left parameter passing
Matthias Braun [Thu, 4 Aug 2011 11:33:57 +0000 (13:33 +0200)]
remove (broken+unused) support for right_to_left parameter passing

12 years agocall hook_new_entity after copying entity so the firm debugger can catch it
Matthias Braun [Thu, 4 Aug 2011 08:49:53 +0000 (10:49 +0200)]
call hook_new_entity after copying entity so the firm debugger can catch it

12 years agosplit irg and irp resources, add IRP_RESOURCE_TYPE_LINK
Matthias Braun [Thu, 4 Aug 2011 07:57:52 +0000 (09:57 +0200)]
split irg and irp resources, add IRP_RESOURCE_TYPE_LINK

12 years agoia32_Minus64Bit needs no contraint copies.
Christoph Mallon [Fri, 29 Jul 2011 08:55:54 +0000 (10:55 +0200)]
ia32_Minus64Bit needs no contraint copies.

Its emitter handles this.

12 years agolowering: fix i_mapper for new exception attributes
Matthias Braun [Thu, 28 Jul 2011 11:03:05 +0000 (13:03 +0200)]
lowering: fix i_mapper for new exception attributes

12 years agofix sparc Call transform rule off-by-one error
Matthias Braun [Thu, 28 Jul 2011 10:41:21 +0000 (12:41 +0200)]
fix sparc Call transform rule off-by-one error

12 years agoWe need a mode_T node for Projs.
Sebastian Buchwald [Thu, 28 Jul 2011 09:15:31 +0000 (11:15 +0200)]
We need a mode_T node for Projs.

12 years agoRemove unnecessary explicit array length spcification.
Christoph Mallon [Wed, 27 Jul 2011 16:25:16 +0000 (18:25 +0200)]
Remove unnecessary explicit array length spcification.

12 years agoActually assert on mode M, as the comment says. We already know it's a Phi.
Christoph Mallon [Wed, 27 Jul 2011 16:24:37 +0000 (18:24 +0200)]
Actually assert on mode M, as the comment says.  We already know it's a Phi.

12 years agoCorrect the NOT+ADC transformation.
Christoph Mallon [Wed, 27 Jul 2011 16:08:48 +0000 (18:08 +0200)]
Correct the NOT+ADC transformation.

12 years agoRemove unused enum entries.
Christoph Mallon [Wed, 27 Jul 2011 16:04:50 +0000 (18:04 +0200)]
Remove unused enum entries.

12 years agoSimplify usage of LC_OPT_ENT_STR(): The length of the buffer is determined in the...
Christoph Mallon [Wed, 27 Jul 2011 16:04:14 +0000 (18:04 +0200)]
Simplify usage of LC_OPT_ENT_STR(): The length of the buffer is determined in the macro, not passed as parameter.

12 years agoGenerate a warning, when LC_OPT_ENT_* macros are used with the wrong type.
Christoph Mallon [Wed, 27 Jul 2011 15:02:00 +0000 (17:02 +0200)]
Generate a warning, when LC_OPT_ENT_* macros are used with the wrong type.

12 years agoTest lower_perm_opt like an enum, not a bitset.
Christoph Mallon [Wed, 27 Jul 2011 14:59:14 +0000 (16:59 +0200)]
Test lower_perm_opt like an enum, not a bitset.

12 years agoCorrect wrong usage of LC_OPT machinery.
Christoph Mallon [Wed, 27 Jul 2011 14:57:36 +0000 (16:57 +0200)]
Correct wrong usage of LC_OPT machinery.

12 years agoCorrect type inconsistency in LC_OPT machinery.
Christoph Mallon [Wed, 27 Jul 2011 14:56:25 +0000 (16:56 +0200)]
Correct type inconsistency in LC_OPT machinery.

12 years agofix statev messing up column-name/value relation in sqlite3
Matthias Braun [Wed, 27 Jul 2011 13:41:58 +0000 (15:41 +0200)]
fix statev messing up column-name/value relation in sqlite3

12 years agofix double free in regex stuff
Matthias Braun [Wed, 27 Jul 2011 13:39:27 +0000 (15:39 +0200)]
fix double free in regex stuff

12 years agoEliminate warning and use static assert.
Christoph Mallon [Wed, 27 Jul 2011 08:31:23 +0000 (10:31 +0200)]
Eliminate warning and use static assert.

12 years agoExtend the NOT+ADC-trick (sic) for SUB to SBB.
Christoph Mallon [Wed, 27 Jul 2011 07:39:45 +0000 (09:39 +0200)]
Extend the NOT+ADC-trick (sic) for SUB to SBB.

This should fix 403.gcc.
A SBB with AM could not fulfill its should_be_same contraint, so the AM gets split from the SBB.
The Load of the AM gets assigned the out register of the SBB, which violates the !in_r5 constraint of the SBB.
Therefore it's necessary to turn the SBB into NOT+ADC.

12 years agoCorrect inaccurate comment: The only corner case of wrong CF in NEG+ADD as replacemen...
Christoph Mallon [Wed, 27 Jul 2011 07:33:58 +0000 (09:33 +0200)]
Correct inaccurate comment: The only corner case of wrong CF in NEG+ADD as replacement for SUB is if both operands are zero.

12 years agoAdded local opt Phi(Pin,...,Pin) -> Pin(Phi(...)).
Sebastian Buchwald [Tue, 26 Jul 2011 12:05:24 +0000 (14:05 +0200)]
Added local opt Phi(Pin,...,Pin) -> Pin(Phi(...)).

This fixes opt/fehler194.c.

12 years agoSet ls_mode for created ia32_Test node.
Sebastian Buchwald [Tue, 19 Jul 2011 14:26:54 +0000 (16:26 +0200)]
Set ls_mode for created ia32_Test node.

12 years agoFixed opt/fehler193.c.
Sebastian Buchwald [Tue, 19 Jul 2011 12:34:02 +0000 (14:34 +0200)]
Fixed opt/fehler193.c.

12 years agoAdded commutative optimization variants.
Sebastian Buchwald [Tue, 19 Jul 2011 09:01:10 +0000 (11:01 +0200)]
Added commutative optimization variants.

12 years agoFixed opt/fehler192.c.
Sebastian Buchwald [Tue, 19 Jul 2011 08:48:51 +0000 (10:48 +0200)]
Fixed opt/fehler192.c.

12 years agoPrevent optimization in case of an Eor, too.
Sebastian Buchwald [Fri, 15 Jul 2011 12:04:30 +0000 (14:04 +0200)]
Prevent optimization in case of an Eor, too.

12 years agoQuick fix for opt/fehler191.c.
Sebastian Buchwald [Fri, 15 Jul 2011 09:26:28 +0000 (11:26 +0200)]
Quick fix for opt/fehler191.c.

This also fixes 176.gcc and 300.twolf.

12 years agoFixed typo.
Sebastian Buchwald [Fri, 15 Jul 2011 09:25:58 +0000 (11:25 +0200)]
Fixed typo.

12 years agoskip Tuples in mode_b lowerer
Matthias Braun [Mon, 11 Jul 2011 11:34:47 +0000 (13:34 +0200)]
skip Tuples in mode_b lowerer

13 years agouse @progbits with .ctors/.dtors section (see also #0000066)
Matthias Braun [Tue, 21 Jun 2011 19:36:07 +0000 (21:36 +0200)]
use @progbits with .ctors/.dtors section (see also #0000066)

13 years agoDon't combine blocks if the first one ends with a Raise.
Julian Oppermann [Tue, 28 Jun 2011 12:10:08 +0000 (14:10 +0200)]
Don't combine blocks if the first one ends with a Raise.

13 years agoC99 feature removed.
Michael Beck [Sat, 25 Jun 2011 16:15:05 +0000 (18:15 +0200)]
C99 feature removed.

13 years agoFixed windows build after lpp merge.
Michael Beck [Sat, 25 Jun 2011 15:52:30 +0000 (17:52 +0200)]
Fixed windows build after lpp merge.

13 years agoMerge Fix: Spills have ProjMs now
Andreas Zwinkau [Fri, 24 Jun 2011 15:33:47 +0000 (17:33 +0200)]
Merge Fix: Spills have ProjMs now

13 years agoFix: Spills have ProjMs now
Andreas Zwinkau [Fri, 24 Jun 2011 15:30:12 +0000 (17:30 +0200)]
Fix: Spills have ProjMs now

13 years agoAdd lpp to Makefile
Andreas Zwinkau [Fri, 24 Jun 2011 13:18:09 +0000 (15:18 +0200)]
Add lpp to Makefile

13 years agofix more cparser warnings, cleanup some libcore code
Matthias Braun [Mon, 20 Jun 2011 17:47:51 +0000 (19:47 +0200)]
fix more cparser warnings, cleanup some libcore code

13 years agofix bug in lower_calls (found by cparser warning)
Matthias Braun [Mon, 20 Jun 2011 12:54:30 +0000 (14:54 +0200)]
fix bug in lower_calls (found by cparser warning)

13 years agofurther cleanup of lpp code
Matthias Braun [Mon, 20 Jun 2011 10:59:02 +0000 (12:59 +0200)]
further cleanup of lpp code

13 years agolpp: adapt to firm coding conventions, warning fixes, cleanup
Matthias Braun [Mon, 20 Jun 2011 10:35:50 +0000 (12:35 +0200)]
lpp: adapt to firm coding conventions, warning fixes, cleanup

13 years agoadd a new aliasing rule (struct access != variable)
Matthias Braun [Fri, 17 Jun 2011 21:22:50 +0000 (23:22 +0200)]
add a new aliasing rule (struct access != variable)

13 years agofix switch lowerer messing up default_proj in some cases
Matthias Braun [Fri, 17 Jun 2011 19:33:28 +0000 (21:33 +0200)]
fix switch lowerer messing up default_proj in some cases

13 years agofix cparser warnings
Matthias Braun [Fri, 17 Jun 2011 19:32:55 +0000 (21:32 +0200)]
fix cparser warnings

13 years agolet backends report their machine_size and the size of long double if supported
Matthias Braun [Wed, 15 Jun 2011 12:59:56 +0000 (14:59 +0200)]
let backends report their machine_size and the size of long double if supported

13 years agoWork around the PIC-in-switch problem by setting the no_pic_adjust flag.
Christoph Mallon [Fri, 17 Jun 2011 12:07:29 +0000 (14:07 +0200)]
Work around the PIC-in-switch problem by setting the no_pic_adjust flag.

This seems wrong. GCC uses PIC for switch on OS X.

13 years agoCorrect usage of ia32_emitf() in emit_ia32_SwitchJmp().
Christoph Mallon [Fri, 17 Jun 2011 09:22:17 +0000 (11:22 +0200)]
Correct usage of ia32_emitf() in emit_ia32_SwitchJmp().

13 years agoReduce code duplication and resolve inconsistencies (due to code duplication) in...
Christoph Mallon [Fri, 17 Jun 2011 09:21:39 +0000 (11:21 +0200)]
Reduce code duplication and resolve inconsistencies (due to code duplication) in ia32_emitf().

13 years agos/threat/treat/.
Christoph Mallon [Fri, 17 Jun 2011 04:08:52 +0000 (06:08 +0200)]
s/threat/treat/.

13 years agofirst experimental version of gurobi ILP solver
Matthias Braun [Thu, 16 Jun 2011 14:29:03 +0000 (16:29 +0200)]
first experimental version of gurobi ILP solver

13 years agooutsourced some functionality
Sebastian Hack [Thu, 16 Jun 2011 13:50:22 +0000 (15:50 +0200)]
outsourced some functionality
adapted to changes

13 years agoremove remaining WITH_ILP uses, fix bug introduced when adapting lpp
Matthias Braun [Thu, 16 Jun 2011 11:50:54 +0000 (13:50 +0200)]
remove remaining WITH_ILP uses, fix bug introduced when adapting lpp

13 years agowe always have liblpp now, remove WITH_ILP flag
Matthias Braun [Thu, 16 Jun 2011 11:32:06 +0000 (13:32 +0200)]
we always have liblpp now, remove WITH_ILP flag

13 years agofix a bunch of warnings reported by cparser
Matthias Braun [Wed, 15 Jun 2011 10:43:56 +0000 (12:43 +0200)]
fix a bunch of warnings reported by cparser

13 years agoadded lpp
Sebastian Hack [Thu, 16 Jun 2011 10:58:11 +0000 (12:58 +0200)]
added lpp

13 years agosome cleanups to opt/loop.c
Matthias Braun [Wed, 15 Jun 2011 08:17:42 +0000 (10:17 +0200)]
some cleanups to opt/loop.c

The optimisation still doesn't appear to do anything for me...

13 years agoadd some const qualifiers to backedges query functions
Matthias Braun [Sat, 11 Jun 2011 13:05:08 +0000 (15:05 +0200)]
add some const qualifiers to backedges query functions

13 years agounify sparc/ia32 SwitchJmp handling
Matthias Braun [Thu, 9 Jun 2011 16:55:48 +0000 (18:55 +0200)]
unify sparc/ia32 SwitchJmp handling

13 years agoimprove jumpthreading comments
Andreas Zwinkau [Fri, 10 Jun 2011 12:20:01 +0000 (14:20 +0200)]
improve jumpthreading comments

13 years agoRevert "jumpthreading must not split edges"
Andreas Zwinkau [Wed, 8 Jun 2011 14:18:59 +0000 (16:18 +0200)]
Revert "jumpthreading must not split edges"

This reverts commit 2dc832999c2d0b91b1d7eb8a5d3de4b89ce5552a.

The commit made jumpthreading "more conservative", which fixed the
problem. However, it is not a good solution in general.

We need a bigger rewrite of opt/jumpthreading, so it analyzes then
modifies the graph instead of on-the-fly changes. This prevents the
infinite loop, which would e.g. happen with such a cf graph:

    \     A         \     A
   __\    |        __\    |
   |  B   |   =>   |  B   |  => ...
   | / \  |        | / \  |
   |    D |        |    E |
   |     \|        |     \|
    \     C         \     D
     \___/           \   /
                      \_C

Breaks opt/jumpthreading5 and opt/jumpthreading5b

13 years agoBetter fix for wrong tarval computation of -(infinity).
Michael Beck [Thu, 9 Jun 2011 15:03:29 +0000 (17:03 +0200)]
Better fix for wrong tarval computation of -(infinity).

Restores the support for no infity, fixed handling of denormals.

13 years agoImproved comment, small cosmetic.
Michael Beck [Tue, 31 May 2011 17:29:01 +0000 (19:29 +0200)]
Improved comment, small cosmetic.

13 years agoFixd typo.
Michael Beck [Tue, 31 May 2011 17:28:11 +0000 (19:28 +0200)]
Fixd typo.

13 years agoFixed wrong tarval computation of -(infinity).
Sebastian Buchwald [Thu, 9 Jun 2011 14:20:05 +0000 (16:20 +0200)]
Fixed wrong tarval computation of -(infinity).

13 years agoFixed some typos.
Sebastian Buchwald [Wed, 8 Jun 2011 12:56:38 +0000 (14:56 +0200)]
Fixed some typos.