libfirm
17 years agoThe big committ:
Matthias Braun [Mon, 19 Mar 2007 17:05:21 +0000 (17:05 +0000)]
The big committ:
- Replace limit callback in register requirements with a simple bitset
- Fix backends, generators and the rest of the code for the change register
  requirements structure
- Eliminated the custom register_requirement structures in the backend, they
  are pointless now, use the normal arch_register_req_t
- Fix TEMPLATE backend
- Extract emitter framework from ia32 and provide generic header/code for it
- Port TEMPLATE backend to new emitter
- Extract gas specific emit stuff (declarations, sections) from ia32 backend
  and provide it as generic header/code. Make TEMPLATE backend use that
- Remove several FIRM_DBG_REGISTERs from functions which are called very often.
  Before we had millions of string hashtable lookups because of that. The
  prefered way is to have 1 static debug module per file and initialize it in
  the module constructor. No passing around in environment structs and in no
  case should you dynamically register it in single functions.

17 years agoremoved unused variable
Christian Würdig [Sun, 18 Mar 2007 17:35:17 +0000 (17:35 +0000)]
removed unused variable

17 years agofixed precedence constraint
Christian Würdig [Sun, 18 Mar 2007 17:33:20 +0000 (17:33 +0000)]
fixed precedence constraint

17 years agoadded more statistics
Christian Würdig [Fri, 16 Mar 2007 14:26:48 +0000 (14:26 +0000)]
added more statistics

17 years agoadded sieve
Christian Würdig [Fri, 16 Mar 2007 12:38:51 +0000 (12:38 +0000)]
added sieve

17 years agoadded missing include
Christian Würdig [Fri, 16 Mar 2007 09:47:18 +0000 (09:47 +0000)]
added missing include

17 years agoadded some statistics
Christian Würdig [Thu, 15 Mar 2007 17:29:37 +0000 (17:29 +0000)]
added some statistics

17 years agofallback to list scheduler when ILP fails
Christian Würdig [Thu, 15 Mar 2007 14:48:07 +0000 (14:48 +0000)]
fallback to list scheduler when ILP fails

17 years agoadded function to schedule single block (needed as ILP fallback)
Christian Würdig [Thu, 15 Mar 2007 14:47:17 +0000 (14:47 +0000)]
added function to schedule single block (needed as ILP fallback)

17 years agopass be options to ILP scheduler
Christian Würdig [Thu, 15 Mar 2007 14:46:48 +0000 (14:46 +0000)]
pass be options to ILP scheduler

17 years agocleaned up the vadd_store test
Matthias Braun [Thu, 15 Mar 2007 14:36:30 +0000 (14:36 +0000)]
cleaned up the vadd_store test

17 years agovector test
Andreas Schösser [Thu, 15 Mar 2007 14:18:31 +0000 (14:18 +0000)]
vector test

17 years agoremoved dead node constraint
Christian Würdig [Thu, 15 Mar 2007 10:14:19 +0000 (10:14 +0000)]
removed dead node constraint

17 years agofixed statistic envents for backend provided spiller
Christian Würdig [Thu, 15 Mar 2007 09:18:48 +0000 (09:18 +0000)]
fixed statistic envents for backend provided spiller

17 years agoremoved some unused variables
Christian Würdig [Wed, 14 Mar 2007 18:13:45 +0000 (18:13 +0000)]
removed some unused variables
changed fprintf into DBG

17 years agoadded branch handling (schedule branches always last)
Christian Würdig [Wed, 14 Mar 2007 12:25:08 +0000 (12:25 +0000)]
added branch handling (schedule branches always last)

17 years agoadded support of live-in variables
Christian Würdig [Tue, 13 Mar 2007 16:39:04 +0000 (16:39 +0000)]
added support of live-in variables

17 years agoadded comments
Christian Würdig [Tue, 13 Mar 2007 16:38:48 +0000 (16:38 +0000)]
added comments
fixed indent

17 years agofixed comment
Christian Würdig [Tue, 13 Mar 2007 16:38:25 +0000 (16:38 +0000)]
fixed comment
fixed options initializer
removed unused code

17 years agofixed indent
Christian Würdig [Tue, 13 Mar 2007 16:37:53 +0000 (16:37 +0000)]
fixed indent

17 years agoChanged mode_DLu to mode_LLu
Andreas Schösser [Mon, 12 Mar 2007 12:12:07 +0000 (12:12 +0000)]
Changed mode_DLu to mode_LLu

17 years agoAdded code to run some initialization routines only once, even if they were called...
Andreas Schösser [Fri, 9 Mar 2007 11:16:56 +0000 (11:16 +0000)]
Added code to run some initialization routines only once, even if they were called several times.

17 years agoAdded code to run init_modules only once even if it is called several times.
Andreas Schösser [Fri, 9 Mar 2007 11:15:13 +0000 (11:15 +0000)]
Added code to run init_modules only once even if it is called several times.

17 years agoAdded possibility to include automatically generated simd nodes specification. Also...
Andreas Schösser [Fri, 9 Mar 2007 11:06:01 +0000 (11:06 +0000)]
Added possibility to include automatically generated simd nodes specification. Also Added code to Spill and Reload sse registers. SSE registers have mode_DLu now, which represents a 128 bit unsigned value.

17 years agoExtend bitfield test
Christoph Mallon [Wed, 7 Mar 2007 15:43:05 +0000 (15:43 +0000)]
Extend bitfield test

17 years ago- No #ifdef WITH_LIBCORE anymore in backend, compilation without libcore was broken...
Matthias Braun [Fri, 2 Mar 2007 15:34:02 +0000 (15:34 +0000)]
- No #ifdef WITH_LIBCORE anymore in backend, compilation without libcore was broken anyway so we always require it now
- changed some #include "config.h" to the recommended #include <config.h>

17 years agodon't throw away memory input when transforming Frees in beabi
Matthias Braun [Fri, 2 Mar 2007 14:17:36 +0000 (14:17 +0000)]
don't throw away memory input when transforming Frees in beabi

17 years agochanged vararray.c to demonstrate another bug
Matthias Braun [Fri, 2 Mar 2007 14:00:52 +0000 (14:00 +0000)]
changed vararray.c to demonstrate another bug

17 years agofix output of static variables after .comm change
Matthias Braun [Thu, 1 Mar 2007 22:23:45 +0000 (22:23 +0000)]
fix output of static variables after .comm change

17 years agofix dumping of thread local storage which was broken after the .comm change
Matthias Braun [Thu, 1 Mar 2007 21:41:16 +0000 (21:41 +0000)]
fix dumping of thread local storage which was broken after the .comm change

17 years agocorrectly handle calls in x87 simulator
Matthias Braun [Thu, 1 Mar 2007 21:35:01 +0000 (21:35 +0000)]
correctly handle calls in x87 simulator

17 years agotest float calls whose return is unused
Matthias Braun [Thu, 1 Mar 2007 21:17:13 +0000 (21:17 +0000)]
test float calls whose return is unused

17 years agotest float calls whose return is unused
Matthias Braun [Thu, 1 Mar 2007 21:16:53 +0000 (21:16 +0000)]
test float calls whose return is unused

17 years agoremove obsolete fldConst node
Matthias Braun [Thu, 1 Mar 2007 21:08:27 +0000 (21:08 +0000)]
remove obsolete fldConst node

17 years agoremove old debug printf
Matthias Braun [Thu, 1 Mar 2007 21:07:57 +0000 (21:07 +0000)]
remove old debug printf

17 years ago- we have to handle copies from Unknown nodes
Matthias Braun [Thu, 1 Mar 2007 21:07:15 +0000 (21:07 +0000)]
- we have to handle copies from Unknown nodes
- Precalculate liveness info again

17 years ago- removed C99 features
Michael Beck [Thu, 1 Mar 2007 17:22:00 +0000 (17:22 +0000)]
- removed C99 features
- typo fixed

17 years ago- just to announce my last committ :) Make Barrier, RegParams and keep nodes
Matthias Braun [Thu, 1 Mar 2007 13:56:28 +0000 (13:56 +0000)]
- just to announce my last committ :) Make Barrier, RegParams and keep nodes
  dynamically extensible

17 years ago- make spillslot coalescer pickup float-int convert loads which are folded
Matthias Braun [Thu, 1 Mar 2007 13:55:02 +0000 (13:55 +0000)]
- make spillslot coalescer pickup float-int convert loads which are folded
  into other nodes
- correctly fix Copies in x87 simulator

17 years agofix mixed reverse/normal comp in fCondJmp
Matthias Braun [Thu, 1 Mar 2007 12:40:51 +0000 (12:40 +0000)]
fix mixed reverse/normal comp in fCondJmp

17 years ago- fix x87 simulator not killing float copies that only move registers around,
Matthias Braun [Thu, 1 Mar 2007 12:13:55 +0000 (12:13 +0000)]
- fix x87 simulator not killing float copies that only move registers around,
 when the operand is a constant
- workaround gas bugs which swaps fsubp,subrp, fdivp, fdivrp

17 years agoadd some more stuff to optest
Matthias Braun [Thu, 1 Mar 2007 12:12:45 +0000 (12:12 +0000)]
add some more stuff to optest

17 years agoSSE consts for xorps need to be 128bit
Matthias Braun [Tue, 27 Feb 2007 16:59:50 +0000 (16:59 +0000)]
SSE consts for xorps need to be 128bit

17 years agofix some ia32_finish routines not setting ls_mode for xmm nodes
Matthias Braun [Tue, 27 Feb 2007 15:47:56 +0000 (15:47 +0000)]
fix some ia32_finish routines not setting ls_mode for xmm nodes

17 years agofix cvt emitter
Matthias Braun [Tue, 27 Feb 2007 15:32:28 +0000 (15:32 +0000)]
fix cvt emitter

17 years agoGetST0 and xLoad also need entities
Matthias Braun [Tue, 27 Feb 2007 15:25:29 +0000 (15:25 +0000)]
GetST0 and xLoad also need entities

17 years agofix SSE2 float calls + returns
Matthias Braun [Tue, 27 Feb 2007 15:23:35 +0000 (15:23 +0000)]
fix SSE2 float calls + returns

17 years agofix SSE2 float calls + returns
Matthias Braun [Tue, 27 Feb 2007 15:23:31 +0000 (15:23 +0000)]
fix SSE2 float calls + returns

17 years agoimproved optest testapp to test more cases, added an optest_float testapp
Matthias Braun [Tue, 27 Feb 2007 11:14:56 +0000 (11:14 +0000)]
improved optest testapp to test more cases, added an optest_float testapp

17 years agodon't output .global for .comm variables
Matthias Braun [Tue, 27 Feb 2007 11:12:56 +0000 (11:12 +0000)]
don't output .global for .comm variables

17 years agofix Mulh, Div, IDiv handling
Matthias Braun [Tue, 27 Feb 2007 11:10:57 +0000 (11:10 +0000)]
fix Mulh, Div, IDiv handling

17 years agoleave result mode of calls untouched
Matthias Braun [Tue, 27 Feb 2007 11:08:02 +0000 (11:08 +0000)]
leave result mode of calls untouched

17 years agoset mode of result Proj to result mode of function
Christian Würdig [Mon, 26 Feb 2007 17:37:59 +0000 (17:37 +0000)]
set mode of result Proj to result mode of function

17 years agooutput unitialized data with .comm
Matthias Braun [Mon, 26 Feb 2007 13:30:53 +0000 (13:30 +0000)]
output unitialized data with .comm

17 years agoremoved dependency on chordal_env
Christian Würdig [Fri, 23 Feb 2007 17:47:02 +0000 (17:47 +0000)]
removed dependency on chordal_env
removed unused code

17 years agofixed wrong assert
Christian Würdig [Fri, 23 Feb 2007 17:46:31 +0000 (17:46 +0000)]
fixed wrong assert

17 years agodo not free irg, STA needs it later on
Christian Würdig [Fri, 23 Feb 2007 17:46:13 +0000 (17:46 +0000)]
do not free irg, STA needs it later on
removed unused code

17 years agoremoved unused code
Christian Würdig [Fri, 23 Feb 2007 17:45:41 +0000 (17:45 +0000)]
removed unused code
removed redundant irg-dump

17 years agoremoved C99 style
Christian Würdig [Fri, 23 Feb 2007 17:45:15 +0000 (17:45 +0000)]
removed C99 style

17 years agouse ARR_LEN and don't save length of registers separate for benodes
Matthias Braun [Fri, 23 Feb 2007 16:25:23 +0000 (16:25 +0000)]
use ARR_LEN and don't save length of registers separate for benodes

17 years agothe delayed nodes are also counted in register pressure, subtract them form there
Matthias Braun [Fri, 23 Feb 2007 10:18:49 +0000 (10:18 +0000)]
the delayed nodes are also counted in register pressure, subtract them form there

17 years agoBugFix: allocate size for the structure, not for the pointer
Michael Beck [Thu, 22 Feb 2007 16:59:14 +0000 (16:59 +0000)]
BugFix: allocate size for the structure, not for the pointer

17 years ago- force liveness update in belady spiller, (someone doesn't seem to use
Matthias Braun [Thu, 22 Feb 2007 13:43:02 +0000 (13:43 +0000)]
- force liveness update in belady spiller, (someone doesn't seem to use
update/invalidate correctly...)
- fixed NoReg/Unknown creation

17 years agoreverting something I didn't want to committ yet
Matthias Braun [Thu, 22 Feb 2007 13:25:14 +0000 (13:25 +0000)]
reverting something I didn't want to committ yet

17 years agoaddes a comment around code that should be removed
Matthias Braun [Thu, 22 Feb 2007 13:22:44 +0000 (13:22 +0000)]
addes a comment around code that should be removed

17 years ago- change float nodes to mode_E
Matthias Braun [Thu, 22 Feb 2007 13:21:22 +0000 (13:21 +0000)]
- change float nodes to mode_E
- correctly capture spills and reloads in coalescer code

17 years agomore verification of the final graph, always kill nodes in be_remove_dead_nodes_from_...
Matthias Braun [Thu, 22 Feb 2007 13:18:39 +0000 (13:18 +0000)]
more verification of the final graph, always kill nodes in be_remove_dead_nodes_from_schedule

17 years agodisabled a verify warning which wasn't always correct
Matthias Braun [Thu, 22 Feb 2007 13:17:00 +0000 (13:17 +0000)]
disabled a verify warning which wasn't always correct

17 years agomake code a little bit nicer, don't create copies for joker registers in constraint...
Matthias Braun [Thu, 22 Feb 2007 13:14:07 +0000 (13:14 +0000)]
make code a little bit nicer, don't create copies for joker registers in constraint handling code

17 years agofixed out-flags parsing
Christian Würdig [Thu, 22 Feb 2007 11:03:54 +0000 (11:03 +0000)]
fixed out-flags parsing

17 years agofixed indenting and some comments
Christian Würdig [Thu, 22 Feb 2007 10:20:54 +0000 (10:20 +0000)]
fixed indenting and some comments

17 years agocheck register pressure in loops for variables, selected for spilling due to loop...
Christian Würdig [Wed, 21 Feb 2007 17:18:42 +0000 (17:18 +0000)]
check register pressure in loops for variables, selected for spilling due to loop structure

17 years agoadded USES_PENDING
Christian Würdig [Wed, 21 Feb 2007 17:01:12 +0000 (17:01 +0000)]
added USES_PENDING

17 years agoBugFix: set insert and find was broken
Christian Würdig [Wed, 21 Feb 2007 17:00:44 +0000 (17:00 +0000)]
BugFix: set insert and find was broken

17 years agofix ra_timers
Matthias Braun [Wed, 21 Feb 2007 10:48:19 +0000 (10:48 +0000)]
fix ra_timers

17 years agofixed typos
Christian Würdig [Wed, 21 Feb 2007 10:15:32 +0000 (10:15 +0000)]
fixed typos

17 years agoadded register pressure analysis in loops
Christian Würdig [Wed, 21 Feb 2007 10:14:05 +0000 (10:14 +0000)]
added register pressure analysis in loops

17 years agoimproved testapps
Matthias Braun [Wed, 21 Feb 2007 08:00:52 +0000 (08:00 +0000)]
improved testapps

17 years agokeep .s files
Matthias Braun [Wed, 21 Feb 2007 07:52:20 +0000 (07:52 +0000)]
keep .s files

17 years agoput timers in a global var for now, until this is solved cleaner
Matthias Braun [Wed, 21 Feb 2007 07:51:57 +0000 (07:51 +0000)]
put timers in a global var for now, until this is solved cleaner

17 years agoexchange Perm-Proj, instead of rerouting
Christian Würdig [Fri, 16 Feb 2007 16:55:18 +0000 (16:55 +0000)]
exchange Perm-Proj, instead of rerouting

17 years agoonly schedule syncs immediately, not all mode_M values
Matthias Braun [Fri, 16 Feb 2007 10:22:57 +0000 (10:22 +0000)]
only schedule syncs immediately, not all mode_M values

17 years agoanother fix :)
Matthias Braun [Fri, 16 Feb 2007 10:00:33 +0000 (10:00 +0000)]
another fix :)

17 years agoanother fix :)
Matthias Braun [Fri, 16 Feb 2007 09:59:12 +0000 (09:59 +0000)]
another fix :)

17 years agofix emitter perl script
Matthias Braun [Fri, 16 Feb 2007 09:47:46 +0000 (09:47 +0000)]
fix emitter perl script

17 years agodon't use enum as base type for bitfields
Matthias Braun [Fri, 16 Feb 2007 09:36:09 +0000 (09:36 +0000)]
don't use enum as base type for bitfields

17 years agoexperiment with new emitter style, change assembler syntax of ia32 backend to AT&T
Matthias Braun [Fri, 16 Feb 2007 09:34:29 +0000 (09:34 +0000)]
experiment with new emitter style, change assembler syntax of ia32 backend to AT&T

17 years agoimprove vararray test, make the array bigger so that the app crashs on wrong implemen...
Matthias Braun [Fri, 16 Feb 2007 09:29:20 +0000 (09:29 +0000)]
improve vararray test, make the array bigger so that the app crashs on wrong implementations :)

17 years agoremove old unused code from belady, improve schedule verifiy in beverify.c, removed...
Matthias Braun [Fri, 16 Feb 2007 08:56:04 +0000 (08:56 +0000)]
remove old unused code from belady, improve schedule verifiy in beverify.c, removed the other schedule verifier in besched.c

17 years agorebuild edges after backend transform phase
Christian Würdig [Thu, 15 Feb 2007 14:58:16 +0000 (14:58 +0000)]
rebuild edges after backend transform phase

17 years agodon't issue warnings for nodes that can still be reached through block out edges...
Matthias Braun [Thu, 15 Feb 2007 10:35:25 +0000 (10:35 +0000)]
don't issue warnings for nodes that can still be reached through block out edges (as it's nearly impossible to avoid this situation)

17 years agoadded assert (node to spill must be scheduled)
Christian Würdig [Wed, 14 Feb 2007 18:01:17 +0000 (18:01 +0000)]
added assert (node to spill must be scheduled)

17 years agoinvalidate liveness after ra
Christian Würdig [Wed, 14 Feb 2007 18:00:57 +0000 (18:00 +0000)]
invalidate liveness after ra

17 years agoadded function get nodes nodes live at another including the node inputs
Christian Würdig [Wed, 14 Feb 2007 18:00:41 +0000 (18:00 +0000)]
added function get nodes nodes live at another including the node inputs

17 years agofix alloc node in beabit, to calculate correct size, use be_kill_node
Matthias Braun [Wed, 14 Feb 2007 12:55:21 +0000 (12:55 +0000)]
fix alloc node in beabit, to calculate correct size, use be_kill_node

17 years agono need for kill_dead_nodes, use edges_deactivate; edges_activate if you need this...
Matthias Braun [Wed, 14 Feb 2007 12:52:48 +0000 (12:52 +0000)]
no need for kill_dead_nodes, use edges_deactivate; edges_activate if you need this functionality (but better fix your code)

17 years agono need for kill_dead_nodes, use edges_deactivate; edges_activate if you need this...
Matthias Braun [Wed, 14 Feb 2007 12:52:31 +0000 (12:52 +0000)]
no need for kill_dead_nodes, use edges_deactivate; edges_activate if you need this functionality (but better fix your code)

17 years agofix warning
Matthias Braun [Wed, 14 Feb 2007 12:51:25 +0000 (12:51 +0000)]
fix warning

17 years agouse edges_delete_node instead of setting edge inputs to Bad when killing a node
Matthias Braun [Wed, 14 Feb 2007 12:51:11 +0000 (12:51 +0000)]
use edges_delete_node instead of setting edge inputs to Bad when killing a node

17 years agoimprove out edges verifier
Matthias Braun [Wed, 14 Feb 2007 12:50:42 +0000 (12:50 +0000)]
improve out edges verifier