libfirm
14 years agoAdd a skip_Id() to make the following assert happy
Michael Beck [Wed, 2 Dec 2009 15:09:24 +0000 (15:09 +0000)]
Add a skip_Id() to make the following assert happy

[r26770]

14 years agoBugFix: Fixed off-by-one error introduced by r26724.
Michael Beck [Wed, 2 Dec 2009 01:12:05 +0000 (01:12 +0000)]
BugFix: Fixed off-by-one error introduced by r26724.

[r26768]

14 years agoBugFix: Cast is an Unop
Michael Beck [Wed, 2 Dec 2009 00:38:21 +0000 (00:38 +0000)]
BugFix: Cast is an Unop

[r26766]

14 years ago- removed C99 features
Michael Beck [Tue, 1 Dec 2009 17:52:14 +0000 (17:52 +0000)]
- removed C99 features

[r26763]

14 years agochange debug printing of firm nodes: add a space between opcode and mode - so beginne...
Matthias Braun [Tue, 1 Dec 2009 15:30:16 +0000 (15:30 +0000)]
change debug printing of firm nodes: add a space between opcode and mode - so beginners catch that it is 2 things

[r26762]

14 years agoComments and file header added.
Thomas Bersch [Fri, 27 Nov 2009 13:51:40 +0000 (13:51 +0000)]
Comments and file header added.

[r26759]

14 years agoout comment function removed.
Thomas Bersch [Fri, 27 Nov 2009 13:37:20 +0000 (13:37 +0000)]
out comment function removed.

[r26758]

14 years agoComments and file header added.
Thomas Bersch [Fri, 27 Nov 2009 13:35:32 +0000 (13:35 +0000)]
Comments and file header added.

[r26757]

14 years agopbqp is only available if FIRM_KAPS is defined
Matthias Braun [Fri, 27 Nov 2009 13:02:28 +0000 (13:02 +0000)]
pbqp is only available if FIRM_KAPS is defined

[r26756]

14 years agoonly compile pbqpcoloring when FIRM_KAPS is enabled
Matthias Braun [Fri, 27 Nov 2009 13:00:56 +0000 (13:00 +0000)]
only compile pbqpcoloring when FIRM_KAPS is enabled

[r26755]

14 years agoChange bechordal_constraints.h to bechordal_common.h
Thomas Bersch [Fri, 27 Nov 2009 09:41:27 +0000 (09:41 +0000)]
Change bechordal_constraints.h to bechordal_common.h

[r26753]

14 years agoInit functions for bechordal_common.c and bepbqpcoloring.c added
Thomas Bersch [Fri, 27 Nov 2009 09:40:46 +0000 (09:40 +0000)]
Init functions for bechordal_common.c and bepbqpcoloring.c added

[r26752]

14 years agoOption for coloring algorithm added.
Thomas Bersch [Fri, 27 Nov 2009 09:39:43 +0000 (09:39 +0000)]
Option for coloring algorithm added.

[r26751]

14 years agoSome functions moved to bechordal_common.c
Thomas Bersch [Fri, 27 Nov 2009 09:37:43 +0000 (09:37 +0000)]
Some functions moved to bechordal_common.c

[r26750]

14 years agoInitial Version
Thomas Bersch [Fri, 27 Nov 2009 09:36:10 +0000 (09:36 +0000)]
Initial Version
This File contains common functions for bechordal.c and bepbqpcoloring.c

[r26749]

14 years agoInitial Version of pbqp coloring algorithm
Thomas Bersch [Fri, 27 Nov 2009 09:22:33 +0000 (09:22 +0000)]
Initial Version of pbqp coloring algorithm

[r26748]

14 years agochange style of braces
Matthias Braun [Fri, 27 Nov 2009 08:53:15 +0000 (08:53 +0000)]
change style of braces

[r26746]

14 years agoInterference matrix is now initialized faster
Thomas Bersch [Thu, 26 Nov 2009 11:43:47 +0000 (11:43 +0000)]
Interference matrix is now initialized faster

[r26745]

14 years agovfnodes supporting addressmode did not keep to res, flags, M standards for outputs
Matthias Braun [Wed, 25 Nov 2009 17:37:18 +0000 (17:37 +0000)]
vfnodes supporting addressmode did not keep to res, flags, M standards for outputs

[r26742]

14 years agonon 32-bit divisions need upconvs
Matthias Braun [Wed, 25 Nov 2009 15:46:43 +0000 (15:46 +0000)]
non 32-bit divisions need upconvs

[r26741]

14 years ago1. Now only one dump for each pbqp instance
Thomas Bersch [Wed, 25 Nov 2009 08:13:19 +0000 (08:13 +0000)]
1. Now only one dump for each pbqp instance
2. Unknown nodes are now identified correctly

[r26740]

14 years agoLoop peeling refactored.
Christian Helmer [Mon, 23 Nov 2009 15:29:48 +0000 (15:29 +0000)]
Loop peeling refactored.

[r26739]

14 years agoInitial version of loop peeling
Christian Helmer [Fri, 20 Nov 2009 09:52:24 +0000 (09:52 +0000)]
Initial version of loop peeling

[r26729]

14 years agomemset is needed by some macros and defined in string.h
Matthias Braun [Thu, 19 Nov 2009 13:21:05 +0000 (13:21 +0000)]
memset is needed by some macros and defined in string.h

[r26728]

14 years agothis test is only needed for interprocedural view
Matthias Braun [Tue, 17 Nov 2009 09:49:31 +0000 (09:49 +0000)]
this test is only needed for interprocedural view

[r26726]

14 years agocleanup beabi so it doesn't need its own obstack anymore
Matthias Braun [Mon, 9 Nov 2009 14:01:55 +0000 (14:01 +0000)]
cleanup beabi so it doesn't need its own obstack anymore

[r26724]

14 years agobe robust against anchor in outedges in skip_barrier peephole
Matthias Braun [Mon, 9 Nov 2009 13:05:35 +0000 (13:05 +0000)]
be robust against anchor in outedges in skip_barrier peephole

[r26723]

14 years agosmall cleanup
Matthias Braun [Fri, 6 Nov 2009 12:58:10 +0000 (12:58 +0000)]
small cleanup

[r26722]

14 years agocleanup beabi a bit and use module constructor/global debug context
Matthias Braun [Fri, 6 Nov 2009 12:57:06 +0000 (12:57 +0000)]
cleanup beabi a bit and use module constructor/global debug context

[r26721]

14 years agomore robust detection of start nodes in listsched; add debug info to be_Start node...
Matthias Braun [Fri, 6 Nov 2009 12:51:30 +0000 (12:51 +0000)]
more robust detection of start nodes in listsched; add debug info to be_Start node constructor

[r26720]

14 years agofix warning
Matthias Braun [Fri, 6 Nov 2009 12:44:26 +0000 (12:44 +0000)]
fix warning

[r26719]

14 years agopmap which contains all used ir_nodes not longer needed
Thomas Bersch [Thu, 5 Nov 2009 13:13:32 +0000 (13:13 +0000)]
pmap which contains all used ir_nodes not longer needed

[r26718]

14 years agopmap which contains all used ir_nodes not longer needed
Thomas Bersch [Thu, 5 Nov 2009 13:13:22 +0000 (13:13 +0000)]
pmap which contains all used ir_nodes not longer needed

[r26717]

14 years agodocument the algorithm a bit
Matthias Braun [Wed, 4 Nov 2009 11:37:48 +0000 (11:37 +0000)]
document the algorithm a bit

[r26713]

14 years agoa first implementation of an algorithm to determine near/far jumps in a binary emitte...
Matthias Braun [Wed, 4 Nov 2009 11:32:23 +0000 (11:32 +0000)]
a first implementation of an algorithm to determine near/far jumps in a binary emitter (not tested yet)

[r26712]

14 years agoAdd a tail_call attribute the Call nodes to mark possible tail calls.
Michael Beck [Tue, 3 Nov 2009 23:34:29 +0000 (23:34 +0000)]
Add a tail_call attribute the Call nodes to mark possible tail calls.
No analysis for this case yet.

[r26711]

14 years ago- removed C99 features
Michael Beck [Tue, 3 Nov 2009 21:49:55 +0000 (21:49 +0000)]
- removed C99 features

[r26709]

14 years agoPBQP Matrices are copied now
Thomas Bersch [Mon, 2 Nov 2009 14:57:27 +0000 (14:57 +0000)]
PBQP Matrices are copied now

[r26708]

14 years agotypos
Sebastian Buchwald [Mon, 12 Oct 2009 15:07:08 +0000 (15:07 +0000)]
typos

[r26691]

14 years agoTimer for time measurement added
Thomas Bersch [Mon, 12 Oct 2009 07:49:00 +0000 (07:49 +0000)]
Timer for time measurement added

[r26690]

14 years ago- refactoring of backend generator scripts: You can create multiple constructors
Matthias Braun [Thu, 1 Oct 2009 16:43:13 +0000 (16:43 +0000)]
- refactoring of backend generator scripts: You can create multiple constructors
  (with different arguments and register constraints for the same node now)
- Lots of cleanups/changes in the arm backend. We can represent all
  "shifter operands" now (but the code selection isn't optimal yet)
- More fixes all over the place - arm backend handles 164.gzip now

[r26673]

14 years agoRestricted nodes are now correctly inserted before not restricted Nodes in reverse...
Thomas Bersch [Thu, 1 Oct 2009 10:11:40 +0000 (10:11 +0000)]
Restricted nodes are now correctly inserted before not restricted Nodes in reverse perfect elimination order

[r26671]

14 years agoproperty name in _pbqp_co_t structure changed
Thomas Bersch [Thu, 1 Oct 2009 10:09:31 +0000 (10:09 +0000)]
property name in _pbqp_co_t structure changed

[r26670]

14 years agoCorrect binary emission of TLS entities.
Christoph Mallon [Tue, 29 Sep 2009 13:15:20 +0000 (13:15 +0000)]
Correct binary emission of TLS entities.

[r26663]

14 years agoSimplify relative binary emission of entities.
Christoph Mallon [Tue, 29 Sep 2009 13:04:37 +0000 (13:04 +0000)]
Simplify relative binary emission of entities.

[r26662]

14 years agoNew ordering in reverse perfect elimination order
Thomas Bersch [Tue, 29 Sep 2009 12:36:41 +0000 (12:36 +0000)]
New ordering in reverse perfect elimination order

[r26661]

14 years agoBitset added to pbqp_co_t data structure.
Thomas Bersch [Tue, 29 Sep 2009 12:33:11 +0000 (12:33 +0000)]
Bitset added to pbqp_co_t data structure.
Bitset contain's information if node has register constraints or not

[r26660]

14 years agoImplement binary emitter for Minus64Bit.
Christoph Mallon [Tue, 29 Sep 2009 12:17:37 +0000 (12:17 +0000)]
Implement binary emitter for Minus64Bit.

[r26659]

14 years agoget_mode_size_bits() returns the size in bits, not bytes.
Christoph Mallon [Tue, 29 Sep 2009 11:21:56 +0000 (11:21 +0000)]
get_mode_size_bits() returns the size in bits, not bytes.

[r26658]

14 years agoImplement semi-binary emitter for SwitchJmp.
Christoph Mallon [Tue, 29 Sep 2009 11:15:10 +0000 (11:15 +0000)]
Implement semi-binary emitter for SwitchJmp.

[r26657]

14 years agoCorrect typo in comment.
Christoph Mallon [Tue, 29 Sep 2009 10:05:30 +0000 (10:05 +0000)]
Correct typo in comment.

[r26656]

14 years agoCorrect error in bemit_ldtls(): the register index must be mapped to the machine...
Christoph Mallon [Fri, 25 Sep 2009 15:05:37 +0000 (15:05 +0000)]
Correct error in bemit_ldtls(): the register index must be mapped to the machine index.

[r26652]

14 years ago- bring arm backend back to shape: cleanup and fix lots of stuff
Matthias Braun [Thu, 24 Sep 2009 13:41:56 +0000 (13:41 +0000)]
- bring arm backend back to shape: cleanup and fix lots of stuff
  disabled some broken transformers. (Queens, Quicksort and several other stuff from the
  testsuite work, but still lots of stuff broken)

[r26649]

14 years agojumps have a special irn flag now so beirgmod can identify them
Matthias Braun [Thu, 24 Sep 2009 13:39:53 +0000 (13:39 +0000)]
jumps have a special irn flag now so beirgmod can identify them

[r26648]

14 years ago.word has different size on different architecutres, use .short
Matthias Braun [Thu, 24 Sep 2009 13:38:34 +0000 (13:38 +0000)]
.word has different size on different architecutres, use .short

[r26647]

14 years agospill preparation needs liveness
Matthias Braun [Thu, 24 Sep 2009 13:37:19 +0000 (13:37 +0000)]
spill preparation needs liveness

[r26646]

14 years agofix register constraints for MemPerm nodes
Matthias Braun [Thu, 24 Sep 2009 13:36:55 +0000 (13:36 +0000)]
fix register constraints for MemPerm nodes

[r26645]

14 years agoRemove one unnecessary malloc() when emitting switches.
Christoph Mallon [Wed, 23 Sep 2009 17:10:08 +0000 (17:10 +0000)]
Remove one unnecessary malloc() when emitting switches.

[r26643]

14 years agoImplement binary emitter for fabs.
Christoph Mallon [Wed, 23 Sep 2009 14:36:41 +0000 (14:36 +0000)]
Implement binary emitter for fabs.

[r26642]

14 years agoImplement binary emitter for Leave.
Christoph Mallon [Wed, 23 Sep 2009 14:30:28 +0000 (14:30 +0000)]
Implement binary emitter for Leave.

[r26641]

14 years agoImplement binary emitters for Fucomi and Fucomip.
Christoph Mallon [Wed, 23 Sep 2009 14:23:05 +0000 (14:23 +0000)]
Implement binary emitters for Fucomi and Fucomip.

[r26640]

14 years agobemit_cmp() must handle 16bit compares.
Christoph Mallon [Wed, 23 Sep 2009 14:22:24 +0000 (14:22 +0000)]
bemit_cmp() must handle 16bit compares.

[r26639]

14 years agoImplement binary emitter for Test8Bit.
Christoph Mallon [Wed, 23 Sep 2009 11:50:42 +0000 (11:50 +0000)]
Implement binary emitter for Test8Bit.

[r26638]

14 years agoConsistently use the source AM form for register-register copies.
Christoph Mallon [Wed, 23 Sep 2009 11:37:44 +0000 (11:37 +0000)]
Consistently use the source AM form for register-register copies.

[r26637]

14 years agoImplement binary emitter for CMov.
Christoph Mallon [Wed, 23 Sep 2009 11:05:27 +0000 (11:05 +0000)]
Implement binary emitter for CMov.

[r26636]

14 years agoFixed r26620.
Sebastian Buchwald [Wed, 23 Sep 2009 10:19:47 +0000 (10:19 +0000)]
Fixed r26620.

[r26635]

14 years agoImplement binary emitters for ShlD and ShrD.
Christoph Mallon [Wed, 23 Sep 2009 08:40:52 +0000 (08:40 +0000)]
Implement binary emitters for ShlD and ShrD.

[r26634]

14 years agoImplement binary emitter for LdTls.
Christoph Mallon [Wed, 23 Sep 2009 08:17:57 +0000 (08:17 +0000)]
Implement binary emitter for LdTls.

[r26633]

14 years agoCorrect typo in bemit_fist().
Christoph Mallon [Wed, 23 Sep 2009 07:59:51 +0000 (07:59 +0000)]
Correct typo in bemit_fist().

[r26632]

14 years agoImplement binary emitter for fdivr.
Christoph Mallon [Wed, 23 Sep 2009 07:45:36 +0000 (07:45 +0000)]
Implement binary emitter for fdivr.

[r26631]

14 years agoImplement binary emitter for fsubrp.
Christoph Mallon [Wed, 23 Sep 2009 07:43:03 +0000 (07:43 +0000)]
Implement binary emitter for fsubrp.

[r26630]

14 years agoImplement binary emitter for fsub.
Christoph Mallon [Wed, 23 Sep 2009 07:41:28 +0000 (07:41 +0000)]
Implement binary emitter for fsub.

[r26629]

14 years agoImplement binary emitter for fpush.
Christoph Mallon [Wed, 23 Sep 2009 07:31:36 +0000 (07:31 +0000)]
Implement binary emitter for fpush.

[r26628]

14 years agoImplement binary emitters for fdiv, fdivp and fdivrp.
Christoph Mallon [Wed, 23 Sep 2009 07:28:56 +0000 (07:28 +0000)]
Implement binary emitters for fdiv, fdivp and fdivrp.

[r26627]

14 years agoImplement binary emitter for fist.
Christoph Mallon [Wed, 23 Sep 2009 07:15:58 +0000 (07:15 +0000)]
Implement binary emitter for fist.

[r26626]

14 years agoImplement binary emitters for FldCW, FnstCW and fistp.
Christoph Mallon [Wed, 23 Sep 2009 07:03:51 +0000 (07:03 +0000)]
Implement binary emitters for FldCW, FnstCW and fistp.

[r26625]

14 years agoImplement binary emitters for FucompFnstsw and fild. Add missing cases for 96bit...
Christoph Mallon [Wed, 23 Sep 2009 06:56:24 +0000 (06:56 +0000)]
Implement binary emitters for FucompFnstsw and fild. Add missing cases for 96bit floats.

[r26624]

14 years agoImplement binary emitters for FucomFnstsw, fchs and fpushCopy.
Christoph Mallon [Wed, 23 Sep 2009 06:19:21 +0000 (06:19 +0000)]
Implement binary emitters for FucomFnstsw, fchs and fpushCopy.

[r26623]

14 years agoImplmenent binary emitters for unordered conditional jump, fadd, faddp, fld, fld1...
Christoph Mallon [Wed, 23 Sep 2009 05:56:50 +0000 (05:56 +0000)]
Implmenent binary emitters for unordered conditional jump, fadd, faddp, fld, fld1, fldz, fmul, fmulp, fpop, fst, fstp, fsubp, fsubr, ftstfnstsw, fucomppfnstsw and fxch. apfel.c works \o/.

[r26622]

14 years agofix verifier crash in case of no register assigned errors
Matthias Braun [Tue, 22 Sep 2009 22:11:11 +0000 (22:11 +0000)]
fix verifier crash in case of no register assigned errors

[r26621]

14 years agocleanup template backend a bit
Matthias Braun [Tue, 22 Sep 2009 22:04:05 +0000 (22:04 +0000)]
cleanup template backend a bit

[r26620]

14 years agoImplement binary emitter for CopyBi.
Christoph Mallon [Tue, 22 Sep 2009 19:22:21 +0000 (19:22 +0000)]
Implement binary emitter for CopyBi.

[r26618]

14 years agoImplement binary emitter for SubSP.
Christoph Mallon [Tue, 22 Sep 2009 19:10:39 +0000 (19:10 +0000)]
Implement binary emitter for SubSP.

[r26617]

14 years ago8bit immediates of Push are signed.
Christoph Mallon [Tue, 22 Sep 2009 18:45:29 +0000 (18:45 +0000)]
8bit immediates of Push are signed.

[r26616]

14 years agoSimplify and correct bemit_binop_2(): test with sourceAM generated wrong opcode.
Christoph Mallon [Tue, 22 Sep 2009 18:06:09 +0000 (18:06 +0000)]
Simplify and correct bemit_binop_2(): test with sourceAM generated wrong opcode.

[r26615]

14 years agoEmit only 2 byte immediates for BinOpMem with 16bit memory location.
Christoph Mallon [Tue, 22 Sep 2009 17:35:59 +0000 (17:35 +0000)]
Emit only 2 byte immediates for BinOpMem with 16bit memory location.

[r26614]

14 years agoHandle 8Bit and 16bit locations for DecMem, IncMem, NegMem and NotMem.
Christoph Mallon [Tue, 22 Sep 2009 17:27:41 +0000 (17:27 +0000)]
Handle 8Bit and 16bit locations for DecMem, IncMem, NegMem and NotMem.

[r26613]

14 years agoHandle 8Bit locations for RolMem, RorMem, SarMem, ShlMem and ShrMem.
Christoph Mallon [Tue, 22 Sep 2009 17:20:39 +0000 (17:20 +0000)]
Handle 8Bit locations for RolMem, RorMem, SarMem, ShlMem and ShrMem.

[r26612]

14 years agoImplement binary emitters for RolMem, RorMem, SarMem, ShlMem and ShrMem.
Christoph Mallon [Tue, 22 Sep 2009 17:14:54 +0000 (17:14 +0000)]
Implement binary emitters for RolMem, RorMem, SarMem, ShlMem and ShrMem.

[r26611]

14 years agoHandle 16bit memory locations for xxxMem.
Christoph Mallon [Tue, 22 Sep 2009 17:04:52 +0000 (17:04 +0000)]
Handle 16bit memory locations for xxxMem.

[r26610]

14 years agoImplement binary emitters for AddMem8Bit, AndMem8Bit, OrMem8Bit, SubMem8Bit and XorMe...
Christoph Mallon [Tue, 22 Sep 2009 16:55:43 +0000 (16:55 +0000)]
Implement binary emitters for AddMem8Bit, AndMem8Bit, OrMem8Bit, SubMem8Bit and XorMem8Bit.

[r26609]

14 years agoImplement binary emitters for AddMem, AndMem, OrMem, SubMem and XorMem.
Christoph Mallon [Tue, 22 Sep 2009 15:52:40 +0000 (15:52 +0000)]
Implement binary emitters for AddMem, AndMem, OrMem, SubMem and XorMem.

[r26608]

14 years agoOnly read the in-reg of a Cmp8Bit, if there is a register.
Christoph Mallon [Tue, 22 Sep 2009 15:51:53 +0000 (15:51 +0000)]
Only read the in-reg of a Cmp8Bit, if there is a register.

[r26607]

14 years agoCorrectly implement binary emitter for Cmp8Bit.
Christoph Mallon [Tue, 22 Sep 2009 14:40:34 +0000 (14:40 +0000)]
Correctly implement binary emitter for Cmp8Bit.

[r26606]

14 years agoThe eax special case for load/store can of course handle entities.
Christoph Mallon [Tue, 22 Sep 2009 12:28:57 +0000 (12:28 +0000)]
The eax special case for load/store can of course handle entities.

[r26605]

14 years agoMake bemit_store() work for 8 and 16 bit, too.
Christoph Mallon [Tue, 22 Sep 2009 12:26:37 +0000 (12:26 +0000)]
Make bemit_store() work for 8 and 16 bit, too.

[r26604]

14 years agoImplement binary emitter for Cmp8Bit.
Christoph Mallon [Tue, 22 Sep 2009 11:57:27 +0000 (11:57 +0000)]
Implement binary emitter for Cmp8Bit.

[r26603]

14 years agoImplement binary emitter for DecMem, IncMem, NegMem and NotMem.
Christoph Mallon [Tue, 22 Sep 2009 11:47:55 +0000 (11:47 +0000)]
Implement binary emitter for DecMem, IncMem, NegMem and NotMem.

[r26602]

14 years agosome unnecessary comments removed
Thomas Bersch [Tue, 22 Sep 2009 11:42:32 +0000 (11:42 +0000)]
some unnecessary comments removed

[r26601]

14 years agoImplement binary emitter for Perm.
Christoph Mallon [Tue, 22 Sep 2009 11:19:59 +0000 (11:19 +0000)]
Implement binary emitter for Perm.

[r26600]