libfirm
14 years agoCorrect AM test in bemit_unop().
Christoph Mallon [Tue, 22 Sep 2009 06:57:47 +0000 (06:57 +0000)]
Correct AM test in bemit_unop().

[r26588]

14 years agoia32_IJmp needs the no-out-requirements hack, too.
Christoph Mallon [Tue, 22 Sep 2009 06:35:53 +0000 (06:35 +0000)]
ia32_IJmp needs the no-out-requirements hack, too.

[r26587]

14 years agoRewrite ModR/M+SIB generation in bemit_mod_am(). This corrects the problem, if there...
Christoph Mallon [Tue, 22 Sep 2009 06:07:37 +0000 (06:07 +0000)]
Rewrite ModR/M+SIB generation in bemit_mod_am(). This corrects the problem, if there is no base, erroneously EBP was emitted as base.

[r26586]

14 years agofix modam with base=ebp and index - MergeSort and QuickSort work
Matthias Braun [Mon, 21 Sep 2009 22:34:46 +0000 (22:34 +0000)]
fix modam with base=ebp and index - MergeSort and QuickSort work

[r26585]

14 years agofix emitting jne, now queens works :)
Matthias Braun [Mon, 21 Sep 2009 21:50:01 +0000 (21:50 +0000)]
fix emitting jne, now queens works :)

[r26584]

14 years agoimplement PopMem, PopEbp, fix push register, fix some unops
Matthias Braun [Mon, 21 Sep 2009 21:33:15 +0000 (21:33 +0000)]
implement PopMem, PopEbp, fix push register, fix some unops

[r26583]

14 years agofix binary emitter for cmp with addressmode and immediate
Matthias Braun [Mon, 21 Sep 2009 20:31:57 +0000 (20:31 +0000)]
fix binary emitter for cmp with addressmode and immediate

[r26581]

14 years agoAdd missing \n.
Christoph Mallon [Mon, 21 Sep 2009 19:38:13 +0000 (19:38 +0000)]
Add missing \n.

[r26579]

14 years agoImplement binary emitter for test.
Christoph Mallon [Mon, 21 Sep 2009 19:33:28 +0000 (19:33 +0000)]
Implement binary emitter for test.

[r26578]

14 years agoIn bemit_binop_with_imm() use in-reg, beacuse some instructions (cmp, test) have...
Christoph Mallon [Mon, 21 Sep 2009 19:32:28 +0000 (19:32 +0000)]
In bemit_binop_with_imm() use in-reg, beacuse some instructions (cmp, test) have no out-reg.

[r26577]

14 years agoImplement binary emitters for inc and dec.
Christoph Mallon [Mon, 21 Sep 2009 17:52:15 +0000 (17:52 +0000)]
Implement binary emitters for inc and dec.

[r26573]

14 years agoImplement binary emitters for shifts and rotates.
Christoph Mallon [Mon, 21 Sep 2009 17:42:40 +0000 (17:42 +0000)]
Implement binary emitters for shifts and rotates.

[r26572]

14 years agoadded jump emitters (only far jump at the moment)
Matthias Braun [Mon, 21 Sep 2009 16:55:44 +0000 (16:55 +0000)]
added jump emitters (only far jump at the moment)

[r26571]

14 years agoImplement bemit_call() with AM.
Christoph Mallon [Mon, 21 Sep 2009 15:11:05 +0000 (15:11 +0000)]
Implement bemit_call() with AM.

[r26570]

14 years agofix strange bug introduced in refactoring (a half-written if)
Matthias Braun [Mon, 21 Sep 2009 14:42:13 +0000 (14:42 +0000)]
fix strange bug introduced in refactoring (a half-written if)

[r26569]

14 years agofix bug introduced in refactoring: displacement only modam used wrong modrm byte
Matthias Braun [Mon, 21 Sep 2009 14:37:17 +0000 (14:37 +0000)]
fix bug introduced in refactoring: displacement only modam used wrong modrm byte

[r26568]

14 years agofix cltd
Matthias Braun [Mon, 21 Sep 2009 14:03:49 +0000 (14:03 +0000)]
fix cltd

[r26567]

14 years agofix relative entity emitter
Matthias Braun [Mon, 21 Sep 2009 13:58:21 +0000 (13:58 +0000)]
fix relative entity emitter

[r26566]

14 years agoWhen using only %esp in AM, which must use a SIB byte, set the index to esp, too...
Christoph Mallon [Mon, 21 Sep 2009 13:24:29 +0000 (13:24 +0000)]
When using only %esp in AM, which must use a SIB byte, set the index to esp, too, which means no index.

[r26565]

14 years agoCorrect three bugs in bemit_incsp(): Offset 0 must emit no code, get_signed_imm_size...
Christoph Mallon [Mon, 21 Sep 2009 13:16:31 +0000 (13:16 +0000)]
Correct three bugs in bemit_incsp(): Offset 0 must emit no code, get_signed_imm_size() returns size in byte, not bits, IncSP -128 is a 4 byte offset, because the value gets negated (i.e. addl $128, %esp is emitted).

[r26564]

14 years agodo creation and merge of affinity classes in 1 pass
Matthias Braun [Mon, 21 Sep 2009 10:52:28 +0000 (10:52 +0000)]
do creation and merge of affinity classes in 1 pass

[r26560]

14 years agoemit statev times in usec
Matthias Braun [Mon, 21 Sep 2009 10:51:56 +0000 (10:51 +0000)]
emit statev times in usec

[r26559]

14 years ago... and the range of a signed 16bit word is -32768 <= x < 32768, not x < 32767.
Christoph Mallon [Mon, 21 Sep 2009 09:00:17 +0000 (09:00 +0000)]
... and the range of a signed 16bit word is -32768 <= x < 32768, not x < 32767.

[r26558]

14 years agoThe range of a singed byte is -128 <= x < 128, not -127 <= x and x <= 128.
Christoph Mallon [Mon, 21 Sep 2009 08:58:36 +0000 (08:58 +0000)]
The range of a singed byte is -128 <= x < 128, not -127 <= x and x <= 128.

[r26557]

14 years agos#/*fallthrough*/#/* FALLTHROUGH */# so lint is happy.
Christoph Mallon [Mon, 21 Sep 2009 08:55:30 +0000 (08:55 +0000)]
s#/*fallthrough*/#/* FALLTHROUGH */# so lint is happy.

[r26556]

14 years agoConnect Projs and their predecessors by nearedges instead of edges.
Sebastian Buchwald [Mon, 21 Sep 2009 08:05:26 +0000 (08:05 +0000)]
Connect Projs and their predecessors by nearedges instead of edges.

[r26555]

14 years agoMore opcodes.
Michael Beck [Sun, 20 Sep 2009 10:01:38 +0000 (10:01 +0000)]
More opcodes.

[r26553]

14 years agoRefactored binary emitter:
Michael Beck [Sun, 20 Sep 2009 03:12:49 +0000 (03:12 +0000)]
Refactored binary emitter:
- support more encoding
- clean up logic
- first steps to generate from spec ...

[r26552]

14 years ago- removed C99 features
Michael Beck [Sat, 19 Sep 2009 09:21:59 +0000 (09:21 +0000)]
- removed C99 features

[r26551]

14 years ago- Active Perl 5.6 cannot cope with "${name}[]" in HERE document, replaced by "${name...
Michael Beck [Sat, 19 Sep 2009 09:21:28 +0000 (09:21 +0000)]
- Active Perl 5.6 cannot cope with "${name}[]" in HERE document, replaced by "${name} []"

[r26550]

14 years ago- further refactoring and finally eliminated the callback for get_out_reg_reqs
Matthias Braun [Fri, 18 Sep 2009 17:48:23 +0000 (17:48 +0000)]
- further refactoring and finally eliminated the callback for get_out_reg_reqs
- Introduced be_Start which is now used instead of iro_Start+be_RegParams
- further cleanups and fixes along the way

[r26549]

14 years agoFixed some problems due to refactoring in previous revisions.
Sebastian Buchwald [Fri, 18 Sep 2009 13:44:09 +0000 (13:44 +0000)]
Fixed some problems due to refactoring in previous revisions.

[r26548]

14 years agoFixed some wrong nodes.
Sebastian Buchwald [Fri, 18 Sep 2009 12:47:57 +0000 (12:47 +0000)]
Fixed some wrong nodes.

[r26547]

14 years agoonly for debugging
Thomas Bersch [Fri, 18 Sep 2009 12:34:56 +0000 (12:34 +0000)]
only for debugging

[r26545]

14 years ago- Reworked backends to put out register_requirements into backend_info_t
Matthias Braun [Fri, 18 Sep 2009 09:18:32 +0000 (09:18 +0000)]
- Reworked backends to put out register_requirements into backend_info_t
- Add a generic requirements+register+flag dumper to bearch; This avoids all
  backends/benode having their own slightly different dumpers
- Lots of cleanups in the backends along the way

[r26542]

14 years agoSet irg birg.
Sebastian Buchwald [Thu, 17 Sep 2009 14:41:54 +0000 (14:41 +0000)]
Set irg birg.

[r26541]

14 years ago- Bigger refactoring and cleanup in backend:
Matthias Braun [Thu, 17 Sep 2009 14:16:20 +0000 (14:16 +0000)]
- Bigger refactoring and cleanup in backend:
* benodes store the out register requirements in backend_info now
  (this is work towards killing the register_requirement callbacks)
* ir_graph has a pointer to beirg now
* Other cleanups

[r26540]

14 years agoexperimental beginning of a binary emitter I had lying around here
Matthias Braun [Thu, 17 Sep 2009 14:12:40 +0000 (14:12 +0000)]
experimental beginning of a binary emitter I had lying around here

[r26539]

14 years agoMoved some ia32 independent code to bemain.
Sebastian Buchwald [Thu, 17 Sep 2009 13:53:35 +0000 (13:53 +0000)]
Moved some ia32 independent code to bemain.

[r26538]

14 years agoStart block isn't a special case anymore (and now get the old node nr).
Sebastian Buchwald [Thu, 17 Sep 2009 12:12:17 +0000 (12:12 +0000)]
Start block isn't a special case anymore (and now get the old node nr).

[r26537]

14 years agoFixed bug that always sets profiled execfreq to zero.
Sebastian Buchwald [Thu, 17 Sep 2009 09:54:55 +0000 (09:54 +0000)]
Fixed bug that always sets profiled execfreq to zero.

[r26536]

14 years agorename benode_t.h to benode.h, remove some unused code
Matthias Braun [Thu, 17 Sep 2009 08:03:27 +0000 (08:03 +0000)]
rename benode_t.h to benode.h, remove some unused code

[r26535]

14 years agounnecessary map
Matthias Braun [Thu, 17 Sep 2009 07:29:13 +0000 (07:29 +0000)]
unnecessary map

[r26534]

14 years agoSet type state to fixed_layout to make beabi happy.
Sebastian Buchwald [Wed, 16 Sep 2009 21:17:54 +0000 (21:17 +0000)]
Set type state to fixed_layout to make beabi happy.

[r26533]

14 years agoConnect profile code to initial Memory.
Sebastian Buchwald [Wed, 16 Sep 2009 20:50:40 +0000 (20:50 +0000)]
Connect profile code to initial Memory.

[r26532]

14 years agosmall optimisation (avoid some arch_irn_consider_in_regalloc
Matthias Braun [Wed, 16 Sep 2009 11:52:53 +0000 (11:52 +0000)]
small optimisation (avoid some arch_irn_consider_in_regalloc

[r26531]

14 years ago- add graph pass for edges_verify()
Michael Beck [Sun, 13 Sep 2009 19:41:49 +0000 (19:41 +0000)]
- add graph pass for edges_verify()

[r26529]

14 years ago- C99 features removed
Michael Beck [Sat, 12 Sep 2009 21:06:33 +0000 (21:06 +0000)]
- C99 features removed
- fixed warning

[r26528]

14 years agoinline arch_get_register_req_out to make the backend slightly faster
Matthias Braun [Fri, 11 Sep 2009 14:28:30 +0000 (14:28 +0000)]
inline arch_get_register_req_out to make the backend slightly faster

[r26526]

14 years agoLC_OPT_ENT_BOOL needs an int
Matthias Braun [Fri, 11 Sep 2009 07:19:23 +0000 (07:19 +0000)]
LC_OPT_ENT_BOOL needs an int

[r26520]

14 years agotypos
Sebastian Buchwald [Thu, 10 Sep 2009 12:41:56 +0000 (12:41 +0000)]
typos

[r26519]

14 years agolibcore wants int, not bool.
Christoph Mallon [Thu, 10 Sep 2009 11:49:39 +0000 (11:49 +0000)]
libcore wants int, not bool.

[r26518]

14 years agowe need last_uses even without preferences
Matthias Braun [Thu, 10 Sep 2009 11:35:56 +0000 (11:35 +0000)]
we need last_uses even without preferences

[r26517]

14 years agosmall bugfix/cleanup of phi preference propagation
Matthias Braun [Thu, 10 Sep 2009 11:24:49 +0000 (11:24 +0000)]
small bugfix/cleanup of phi preference propagation

[r26516]

14 years agoadd commandline options to disable preference, congruence classes and phi register...
Matthias Braun [Thu, 10 Sep 2009 11:24:00 +0000 (11:24 +0000)]
add commandline options to disable preference, congruence classes and phi register propagation

[r26515]

14 years agoCorrect typos.
Christoph Mallon [Thu, 10 Sep 2009 08:17:53 +0000 (08:17 +0000)]
Correct typos.

[r26514]

14 years agoFixed codegen/wrong_execfreq.c from r26508.
Sebastian Buchwald [Wed, 9 Sep 2009 23:15:27 +0000 (23:15 +0000)]
Fixed codegen/wrong_execfreq.c from r26508.

[r26513]

14 years agodon't classify Proj nodes
Matthias Braun [Wed, 9 Sep 2009 14:28:18 +0000 (14:28 +0000)]
don't classify Proj nodes

[r26507]

14 years agomulti level optimistic split
Matthias Braun [Wed, 9 Sep 2009 12:56:32 +0000 (12:56 +0000)]
multi level optimistic split

[r26505]

14 years agoCorrect wrong DBG_OPT_ALGSIM classification.
Christoph Mallon [Wed, 9 Sep 2009 10:55:50 +0000 (10:55 +0000)]
Correct wrong DBG_OPT_ALGSIM classification.

[r26504]

14 years agoToday's localopt: a * (1 << x) -> a << x.
Christoph Mallon [Wed, 9 Sep 2009 10:52:13 +0000 (10:52 +0000)]
Today's localopt: a * (1 << x) -> a << x.

[r26503]

14 years agoreturn 0 for number of outputs for nodes without backend info
Matthias Braun [Mon, 7 Sep 2009 14:28:40 +0000 (14:28 +0000)]
return 0 for number of outputs for nodes without backend info

[r26502]

14 years agogive fewer penalties to neighbors of uses with multiple allowed registers
Matthias Braun [Mon, 7 Sep 2009 14:00:04 +0000 (14:00 +0000)]
give fewer penalties to neighbors of uses with multiple allowed registers

[r26501]

14 years agoAdded missing declaration.
Sebastian Buchwald [Mon, 7 Sep 2009 07:37:04 +0000 (07:37 +0000)]
Added missing declaration.

[r26500]

14 years agoUse module mechanism to register copy minimization algorithms.
Sebastian Buchwald [Sun, 6 Sep 2009 21:31:36 +0000 (21:31 +0000)]
Use module mechanism to register copy minimization algorithms.

[r26498]

14 years ago- removed C99 features
Michael Beck [Sun, 6 Sep 2009 09:16:52 +0000 (09:16 +0000)]
- removed C99 features

[r26496]

14 years agoallow final_cost pointer to be NULL
Matthias Braun [Sat, 5 Sep 2009 15:54:04 +0000 (15:54 +0000)]
allow final_cost pointer to be NULL

[r26495]

14 years agoavoid putting interfering stuff into the same congruence class
Matthias Braun [Sat, 5 Sep 2009 15:53:20 +0000 (15:53 +0000)]
avoid putting interfering stuff into the same congruence class

[r26494]

14 years ago- removed remnant of copyheur3
Sebastian Buchwald [Fri, 4 Sep 2009 21:49:26 +0000 (21:49 +0000)]
- removed remnant of copyheur3
- use name copyopt instead of copycoal

[r26493]

14 years agoAdded some comments.
Sebastian Buchwald [Fri, 4 Sep 2009 21:20:37 +0000 (21:20 +0000)]
Added some comments.

[r26492]

14 years agoWe have already asserted the condition.
Sebastian Buchwald [Fri, 4 Sep 2009 18:15:54 +0000 (18:15 +0000)]
We have already asserted the condition.

[r26491]

14 years agoWe need config.h to know whether FIRM_KAPS is defined.
Sebastian Buchwald [Fri, 4 Sep 2009 14:26:42 +0000 (14:26 +0000)]
We need config.h to know whether FIRM_KAPS is defined.

[r26489]

14 years agonew heursitic for good coloring order; add utility function to generate a postorder
Matthias Braun [Fri, 4 Sep 2009 13:19:44 +0000 (13:19 +0000)]
new heursitic for good coloring order; add utility function to generate a postorder

[r26488]

14 years agoonly compile pbqp stuff if pbqp defines are enabled
Matthias Braun [Fri, 4 Sep 2009 13:18:57 +0000 (13:18 +0000)]
only compile pbqp stuff if pbqp defines are enabled

[r26487]

14 years ago- added assert for correct PBQP solution
Thomas Bersch [Fri, 4 Sep 2009 10:52:06 +0000 (10:52 +0000)]
- added assert for correct PBQP solution
- removed printf

[r26485]

14 years agoInitial version of PBQP copy minimization.
Thomas Bersch [Fri, 4 Sep 2009 10:44:26 +0000 (10:44 +0000)]
Initial version of PBQP copy minimization.

[r26484]

14 years agotweak optimistic split heuristic to take execfreq of the potential copy into account
Matthias Braun [Thu, 3 Sep 2009 16:51:37 +0000 (16:51 +0000)]
tweak optimistic split heuristic to take execfreq of the potential copy into account

[r26483]

14 years agoalign stackframe to 4 bytes to avoid bad esp alignments
Matthias Braun [Thu, 3 Sep 2009 16:32:03 +0000 (16:32 +0000)]
align stackframe to 4 bytes to avoid bad esp alignments

[r26480]

14 years agoimprove hack to also work when the value has been 'permed'
Matthias Braun [Thu, 3 Sep 2009 14:45:30 +0000 (14:45 +0000)]
improve hack to also work when the value has been 'permed'

[r26478]

14 years agodon't optimistically split these strange msut_be_different copies
Matthias Braun [Thu, 3 Sep 2009 14:33:31 +0000 (14:33 +0000)]
don't optimistically split these strange msut_be_different copies

[r26477]

14 years agoCopyKeeps have mostly Keep-like semantics too - make verifier/spill-node placement...
Matthias Braun [Thu, 3 Sep 2009 14:33:17 +0000 (14:33 +0000)]
CopyKeeps have mostly Keep-like semantics too - make verifier/spill-node placement respect that

[r26476]

14 years agofix (nearly) endless loops in some cases of propagate_phi
Matthias Braun [Thu, 3 Sep 2009 10:37:47 +0000 (10:37 +0000)]
fix (nearly) endless loops in some cases of propagate_phi

[r26475]

14 years agoSort file lists in Makefile.am.
Christoph Mallon [Thu, 3 Sep 2009 05:13:03 +0000 (05:13 +0000)]
Sort file lists in Makefile.am.

[r26473]

14 years agoAdd missing files to Makefile.am.
Christoph Mallon [Thu, 3 Sep 2009 05:06:19 +0000 (05:06 +0000)]
Add missing files to Makefile.am.

[r26472]

14 years agoRemove removed files from Makefile.am.
Christoph Mallon [Wed, 2 Sep 2009 19:09:04 +0000 (19:09 +0000)]
Remove removed files from Makefile.am.

[r26471]

14 years agomerge preferences along congruence classes
Matthias Braun [Wed, 2 Sep 2009 16:57:04 +0000 (16:57 +0000)]
merge preferences along congruence classes

[r26470]

14 years agoAdd OALLOC*() to make allocating from obstacks a bit nicer.
Christoph Mallon [Wed, 2 Sep 2009 10:40:20 +0000 (10:40 +0000)]
Add OALLOC*() to make allocating from obstacks a bit nicer.

[r26468]

14 years agoCreate clean register requirements for Phis, otherwise reg_reqs_equal() and maybe...
Christoph Mallon [Wed, 2 Sep 2009 07:28:03 +0000 (07:28 +0000)]
Create clean register requirements for Phis, otherwise reg_reqs_equal() and maybe others could get confused. It is unknown whether this caused any problems.

[r26467]

14 years agoReuse already fetched values.
Christoph Mallon [Wed, 2 Sep 2009 06:18:48 +0000 (06:18 +0000)]
Reuse already fetched values.

[r26465]

14 years agoCorrect typo in comment.
Christoph Mallon [Wed, 2 Sep 2009 06:18:16 +0000 (06:18 +0000)]
Correct typo in comment.

[r26464]

14 years agoold and never used files
Matthias Braun [Tue, 1 Sep 2009 20:16:48 +0000 (20:16 +0000)]
old and never used files

[r26461]

14 years agoold and nowaday useless tool stuff
Matthias Braun [Tue, 1 Sep 2009 20:15:08 +0000 (20:15 +0000)]
old and nowaday useless tool stuff

[r26460]

14 years ago- improve block scheduling heuristic by deciding a priori which edge is the fall...
Matthias Braun [Tue, 1 Sep 2009 19:06:25 +0000 (19:06 +0000)]
- improve block scheduling heuristic by deciding a priori which edge is the fall-through leaving a loop
- remove old extbb block scheduler

[r26459]

14 years agoimprov execfreq estimation if a loop outedge leaves multiple loops
Matthias Braun [Tue, 1 Sep 2009 19:04:59 +0000 (19:04 +0000)]
improv execfreq estimation if a loop outedge leaves multiple loops

[r26458]

14 years agofix rematerialisation code to not ask Proj nodes for properties of instructions
Matthias Braun [Mon, 31 Aug 2009 13:17:48 +0000 (13:17 +0000)]
fix rematerialisation code to not ask Proj nodes for properties of instructions

[r26453]

14 years agoChanged splitting of commutative nodes: Instead of touching only the
Michael Beck [Sun, 30 Aug 2009 14:37:05 +0000 (14:37 +0000)]
Changed splitting of commutative nodes: Instead of touching only the
first occuring class (op(a,a) or op(a,b)), touch all and split the
touched list into halfs.
This should fix fehler170.c and is more logical and simpler code.

[r26446]

14 years ago- removed C99 features
Michael Beck [Fri, 28 Aug 2009 22:46:21 +0000 (22:46 +0000)]
- removed C99 features

[r26444]

14 years agoclarify comment
Matthias Braun [Fri, 28 Aug 2009 09:26:27 +0000 (09:26 +0000)]
clarify comment

[r26440]

14 years agoCorrect typos in comments.
Christoph Mallon [Thu, 27 Aug 2009 13:26:53 +0000 (13:26 +0000)]
Correct typos in comments.

[r26438]

14 years agoimprove phi propagation
Matthias Braun [Thu, 27 Aug 2009 13:04:30 +0000 (13:04 +0000)]
improve phi propagation

[r26437]