Christian Würdig [Tue, 17 Oct 2006 09:06:58 +0000 (09:06 +0000)]
added #ifdef __GNUC__
Christian Würdig [Tue, 17 Oct 2006 09:06:35 +0000 (09:06 +0000)]
removed some #if 0
Christian Würdig [Tue, 17 Oct 2006 09:04:56 +0000 (09:04 +0000)]
BugFix: return gcc-like names for st0-st7: %st, %st(1) - %st(7)
BugFix: test for parity on unordered compares
Christian Würdig [Tue, 17 Oct 2006 09:03:22 +0000 (09:03 +0000)]
Phi as consumer of normal node is out edge
Matthias Braun [Mon, 16 Oct 2006 12:24:50 +0000 (12:24 +0000)]
fewer runs for max
Christian Würdig [Mon, 16 Oct 2006 12:20:34 +0000 (12:20 +0000)]
BugFix: Phi as user of normal node is no descendant but an out-edge
Christian Würdig [Mon, 16 Oct 2006 11:59:32 +0000 (11:59 +0000)]
fixed transformation SSE2X87 nodes
Christian Würdig [Mon, 16 Oct 2006 11:59:13 +0000 (11:59 +0000)]
fixed intrinsic mapping (wrong entities were used sometimes)
Christian Würdig [Mon, 16 Oct 2006 11:58:34 +0000 (11:58 +0000)]
only create pushs if requested (default is on)
Christian Würdig [Mon, 16 Oct 2006 11:58:03 +0000 (11:58 +0000)]
added new option ia32-nopushargs
Christian Würdig [Fri, 13 Oct 2006 12:53:01 +0000 (12:53 +0000)]
added compile only flag to eccp (-c)
Christian Würdig [Fri, 13 Oct 2006 12:52:03 +0000 (12:52 +0000)]
fixed 64Bit intrinsic mapping
Christian Würdig [Fri, 13 Oct 2006 12:51:24 +0000 (12:51 +0000)]
fixed emitter (call printf foreach . line)
Christian Würdig [Fri, 13 Oct 2006 12:50:50 +0000 (12:50 +0000)]
fixed endless loop
added cbc verifier
Christian Würdig [Fri, 13 Oct 2006 12:50:26 +0000 (12:50 +0000)]
recompute edges before scheduling
Christian Würdig [Fri, 13 Oct 2006 12:48:39 +0000 (12:48 +0000)]
fixed constraint assurance
Christian Würdig [Fri, 13 Oct 2006 12:47:47 +0000 (12:47 +0000)]
slightly extended test
Matthias Braun [Thu, 12 Oct 2006 14:28:08 +0000 (14:28 +0000)]
put bespill options into separate file
Matthias Braun [Thu, 12 Oct 2006 11:31:51 +0000 (11:31 +0000)]
- Improved addressmode optimisation for conv nodes
Matthias Braun [Wed, 11 Oct 2006 18:08:02 +0000 (18:08 +0000)]
warning fixes
Matthias Braun [Wed, 11 Oct 2006 18:07:33 +0000 (18:07 +0000)]
warning fixes
Michael Beck [Wed, 11 Oct 2006 12:27:46 +0000 (12:27 +0000)]
Updated the x87 simulator:
- patching node inputs fool the register verifier, so fxch, fpop and fpush are now nodes
without in- and output. They are keeped and hold in the schedule.
- handle all possible constants in sim_Copy()
Michael Beck [Wed, 11 Oct 2006 12:25:11 +0000 (12:25 +0000)]
Allow empty requierements.
NEVER return st registers for a floating point node, or the x87 simulator fails
Michael Beck [Wed, 11 Oct 2006 12:18:59 +0000 (12:18 +0000)]
Allow empty in and out requierements for nodes
Christian Würdig [Wed, 11 Oct 2006 08:57:27 +0000 (08:57 +0000)]
added several bugfixed and code changes
Christian Würdig [Tue, 10 Oct 2006 20:44:34 +0000 (20:44 +0000)]
BugFix: crashed when gen_imm_Sub got SymConst instead of Const (broken tarval)
Christian Würdig [Tue, 10 Oct 2006 15:48:47 +0000 (15:48 +0000)]
Bugfix: add eax resp. edx proj for MulS if missing
Christian Würdig [Tue, 10 Oct 2006 14:10:10 +0000 (14:10 +0000)]
fixed assertion in Const emitter (tarval mode_P and Const mode_Iu is allowed)
emit block labels for switchjmp targets
Christian Würdig [Tue, 10 Oct 2006 13:14:39 +0000 (13:14 +0000)]
BugFix: retrieve Proj-based out flags only for datab Projs
Michael Beck [Mon, 9 Oct 2006 16:41:57 +0000 (16:41 +0000)]
BugFix:
- use of wrong (uninitialized) variable
- modes was fixed to mode_Iu, but must be the same mode as the other tarval
Christian Würdig [Mon, 9 Oct 2006 15:42:20 +0000 (15:42 +0000)]
added printf for better debugging
Christian Würdig [Mon, 9 Oct 2006 15:40:16 +0000 (15:40 +0000)]
added some testcases
Christian Würdig [Mon, 9 Oct 2006 13:43:38 +0000 (13:43 +0000)]
added another test case
Christian Würdig [Mon, 9 Oct 2006 13:38:32 +0000 (13:38 +0000)]
add dependency to barrieri if load is in start block
Christian Würdig [Mon, 9 Oct 2006 13:26:27 +0000 (13:26 +0000)]
removed memory input from consts
const are now placed in smallest common dominator block of all it's users
constants have dependency to barrier
Christian Würdig [Mon, 9 Oct 2006 13:25:12 +0000 (13:25 +0000)]
added attribute and function to retrieve barrier from start block
Christian Würdig [Mon, 9 Oct 2006 13:24:35 +0000 (13:24 +0000)]
do not schedule node having no users
Matthias Braun [Mon, 9 Oct 2006 12:15:39 +0000 (12:15 +0000)]
fix blocksched for blocks with arity==0
Christian Würdig [Mon, 9 Oct 2006 11:35:07 +0000 (11:35 +0000)]
omit copies from virtual registers
Christian Würdig [Mon, 9 Oct 2006 11:34:51 +0000 (11:34 +0000)]
added suppoprt for virtual registers
made UNKNW, NOREG and vfp registers virtual
Christian Würdig [Mon, 9 Oct 2006 11:34:06 +0000 (11:34 +0000)]
added new register type "virtual"
Christian Würdig [Mon, 9 Oct 2006 09:07:46 +0000 (09:07 +0000)]
fixed gen_Load (add Proj for unused volatile Loads before renumbering)
Christian Würdig [Mon, 9 Oct 2006 08:58:17 +0000 (08:58 +0000)]
fixed Proj renumbering
Christian Würdig [Sat, 7 Oct 2006 10:41:21 +0000 (10:41 +0000)]
changed printf to DBG output
made code more firm style :)
Christian Würdig [Fri, 6 Oct 2006 14:26:10 +0000 (14:26 +0000)]
fixed requirements for ShrD and ShlD
Christian Würdig [Fri, 6 Oct 2006 14:20:34 +0000 (14:20 +0000)]
added support for requirements: different from all in
Christian Würdig [Fri, 6 Oct 2006 12:22:40 +0000 (12:22 +0000)]
fixed n_res calculation
Christian Würdig [Fri, 6 Oct 2006 12:21:58 +0000 (12:21 +0000)]
fixed main structure init
Christian Würdig [Fri, 6 Oct 2006 12:21:31 +0000 (12:21 +0000)]
fixed constraint insn walker
Christian Würdig [Fri, 6 Oct 2006 12:20:57 +0000 (12:20 +0000)]
fixed sel entity collector
Christian Würdig [Fri, 6 Oct 2006 10:45:00 +0000 (10:45 +0000)]
removed redundant comment
Matthias Braun [Fri, 6 Oct 2006 10:43:10 +0000 (10:43 +0000)]
no need to recalculate liveness and loop tree for each morgan run
Christian Würdig [Fri, 6 Oct 2006 10:41:49 +0000 (10:41 +0000)]
fixed flags
Christian Würdig [Fri, 6 Oct 2006 08:45:19 +0000 (08:45 +0000)]
added support for separate outflags
Christian Würdig [Fri, 6 Oct 2006 08:43:05 +0000 (08:43 +0000)]
fixed indent
Michael Beck [Thu, 5 Oct 2006 13:42:35 +0000 (13:42 +0000)]
Do not allow algorithms heur3 and ilp if not compiled in
Adam Szalkowski [Thu, 5 Oct 2006 13:08:41 +0000 (13:08 +0000)]
enumaration of possible enum values is now done by libcore
Christian Würdig [Thu, 5 Oct 2006 09:14:31 +0000 (09:14 +0000)]
fixed missing include
added comments (especially for endif)
Matthias Braun [Wed, 4 Oct 2006 11:53:28 +0000 (11:53 +0000)]
fix
Matthias Braun [Wed, 4 Oct 2006 11:11:56 +0000 (11:11 +0000)]
forgot to add beblockschedule to makefile
Christian Würdig [Tue, 3 Oct 2006 15:21:50 +0000 (15:21 +0000)]
return real x87 register (st0-st7) if node is patched to keep verifier happy
Christian Würdig [Tue, 3 Oct 2006 15:20:21 +0000 (15:20 +0000)]
removed firm proj num translation function, existing projs are renumbered instead
Michael Beck [Mon, 2 Oct 2006 09:09:09 +0000 (09:09 +0000)]
C99 feature removed
warning removed
Matthias Braun [Sat, 30 Sep 2006 10:17:41 +0000 (10:17 +0000)]
fixes, use new blockscheduler
Matthias Braun [Sat, 30 Sep 2006 10:16:53 +0000 (10:16 +0000)]
- Added 2 new blockschedulers, a greedy algorithm and an "optimal" ILP that
both try to transform as many jumps as possible to fallthroughs (weighted by
execution frequency). The results are most of the times better than the extbb
blockscheduler.
Though it seems like x86 branch prediction sees conditional backward
jumps as always taken, so we have to make sure that for 50/50 jumps we don't
create backward jumps. (nothing implemented for this yet)
Sebastian Hack [Thu, 28 Sep 2006 11:16:10 +0000 (11:16 +0000)]
Inserting copies for constrained inputs which have ignore operands (uah, this is scary!)
Christian Würdig [Thu, 28 Sep 2006 07:54:16 +0000 (07:54 +0000)]
added support for joker register
Christian Würdig [Thu, 28 Sep 2006 07:35:03 +0000 (07:35 +0000)]
fixed serialization: cfops are not allowed as serialization target
Michael Beck [Wed, 27 Sep 2006 23:30:56 +0000 (23:30 +0000)]
renamed exec_freq_t to ir_exec_freq
Michael Beck [Wed, 27 Sep 2006 23:29:56 +0000 (23:29 +0000)]
fixed type name
Michael Beck [Wed, 27 Sep 2006 23:28:16 +0000 (23:28 +0000)]
renamed exec_freq_t to ir_exec_freq
Christian Würdig [Wed, 27 Sep 2006 13:57:30 +0000 (13:57 +0000)]
allow register of type joker
Christian Würdig [Wed, 27 Sep 2006 13:57:12 +0000 (13:57 +0000)]
added register type joker
Christian Würdig [Wed, 27 Sep 2006 13:56:37 +0000 (13:56 +0000)]
made unknown a joker register
Christian Würdig [Wed, 27 Sep 2006 11:59:06 +0000 (11:59 +0000)]
do not add dependency edges for Keeps and Barriers
Matthias Braun [Wed, 27 Sep 2006 11:03:40 +0000 (11:03 +0000)]
don't emit +0 offsets
Christian Würdig [Tue, 26 Sep 2006 15:56:12 +0000 (15:56 +0000)]
do not make memory operands dependend on number of reload user
Christian Würdig [Tue, 26 Sep 2006 15:54:18 +0000 (15:54 +0000)]
check for BAD input
Christian Würdig [Tue, 26 Sep 2006 15:50:39 +0000 (15:50 +0000)]
set correct noreg register when assimilating loads
Christian Würdig [Tue, 26 Sep 2006 14:59:15 +0000 (14:59 +0000)]
remove keepalive edge
Matthias Braun [Tue, 26 Sep 2006 13:14:01 +0000 (13:14 +0000)]
more handoptimisation
Christian Würdig [Tue, 26 Sep 2006 11:48:20 +0000 (11:48 +0000)]
fixed descendant collector, causing an endless loop in SKS computation
fixed maxac creation (unknown if it has any effects)
removed unused code
Matthias Braun [Tue, 26 Sep 2006 08:34:03 +0000 (08:34 +0000)]
fix regdiff
Christian Würdig [Mon, 25 Sep 2006 16:09:49 +0000 (16:09 +0000)]
tweaked heuristic selector
Christian Würdig [Mon, 25 Sep 2006 16:08:40 +0000 (16:08 +0000)]
make memory nodes immediatly ready
Christian Würdig [Mon, 25 Sep 2006 13:41:49 +0000 (13:41 +0000)]
fixed dvg update
Christian Würdig [Mon, 25 Sep 2006 13:41:02 +0000 (13:41 +0000)]
set correct register for SetST0
Christian Würdig [Mon, 25 Sep 2006 12:43:49 +0000 (12:43 +0000)]
fixed SetST0 register settings
Matthias Braun [Mon, 25 Sep 2006 12:43:14 +0000 (12:43 +0000)]
fix bad modes for some Float2Int convs
Christian Würdig [Mon, 25 Sep 2006 11:16:21 +0000 (11:16 +0000)]
fixed bipartite decomposition
Christian Würdig [Mon, 25 Sep 2006 10:47:57 +0000 (10:47 +0000)]
added descendent walk visited flag, due to Phi loops
Christian Würdig [Mon, 25 Sep 2006 09:23:40 +0000 (09:23 +0000)]
added options
fixed code
Christian Würdig [Mon, 25 Sep 2006 09:23:24 +0000 (09:23 +0000)]
moved scheduler options to scheduling module
scheduler registers it's own options now
stabs debugging output is off by default
Christian Würdig [Fri, 22 Sep 2006 13:19:26 +0000 (13:19 +0000)]
fixed SSE returns
Christian Würdig [Thu, 21 Sep 2006 14:18:41 +0000 (14:18 +0000)]
set register for SetST0 on creation
Christian Würdig [Thu, 21 Sep 2006 13:42:58 +0000 (13:42 +0000)]
removed is_Start macro, there exists a firm function now
Christian Würdig [Thu, 21 Sep 2006 13:42:38 +0000 (13:42 +0000)]
added missing include
Christian Würdig [Thu, 21 Sep 2006 13:40:05 +0000 (13:40 +0000)]
changed behaviour, use real nodes instead of projs
Christian Würdig [Thu, 21 Sep 2006 12:16:22 +0000 (12:16 +0000)]
invalidate outs when removing empty blocks
Michael Beck [Thu, 21 Sep 2006 08:52:30 +0000 (08:52 +0000)]
Fixed warning