libfirm
16 years agoRemove whitespace at EOL and empty lines at EOF.
Christoph Mallon [Sun, 7 Oct 2007 15:50:49 +0000 (15:50 +0000)]
Remove whitespace at EOL and empty lines at EOF.

[r16112]

16 years agoSimplify consumer_dom_dca().
Christoph Mallon [Sun, 7 Oct 2007 15:28:55 +0000 (15:28 +0000)]
Simplify consumer_dom_dca().

[r16111]

16 years agoCleanup: Remove trailing whitespace, get_irn_n(n, -1) -> get_nodes_block(n), get_irn_...
Christoph Mallon [Sun, 7 Oct 2007 15:25:43 +0000 (15:25 +0000)]
Cleanup: Remove trailing whitespace, get_irn_n(n, -1) -> get_nodes_block(n), get_irn_op(n) == op_FOO -> is_Foo(n).

[r16110]

16 years agoadd an option to disable calling convention optimisation
Matthias Braun [Sat, 6 Oct 2007 19:31:27 +0000 (19:31 +0000)]
add an option to disable calling convention optimisation

[r16108]

16 years agoemit a Begin and End marker around functions (usefull for scripts modifying the ...
Matthias Braun [Sat, 6 Oct 2007 19:31:08 +0000 (19:31 +0000)]
emit a Begin and End marker around functions (usefull for scripts modifying the .s file)

[r16107]

16 years agouse unknowns instead of Bads while constructing phis
Matthias Braun [Sat, 6 Oct 2007 17:05:20 +0000 (17:05 +0000)]
use unknowns instead of Bads while constructing phis

[r16106]

16 years agoreally disable CSE in backend, and add an assert about that in bespill.c
Matthias Braun [Sat, 6 Oct 2007 13:40:34 +0000 (13:40 +0000)]
really disable CSE in backend, and add an assert about that in bespill.c

[r16105]

16 years agomade parse_asm_constraint() static
Michael Beck [Fri, 5 Oct 2007 22:42:00 +0000 (22:42 +0000)]
made parse_asm_constraint() static

[r16103]

16 years agodoxygen comment added
Michael Beck [Fri, 5 Oct 2007 22:41:31 +0000 (22:41 +0000)]
doxygen comment added

[r16102]

16 years agopreliminary added missing *stat_ev_int()
Michael Beck [Fri, 5 Oct 2007 12:37:02 +0000 (12:37 +0000)]
preliminary added missing *stat_ev_int()

[r16099]

16 years agoA small (very small) optimization
Sebastian Hack [Fri, 5 Oct 2007 11:19:40 +0000 (11:19 +0000)]
A small (very small) optimization

[r16097]

16 years agoCosmetics
Sebastian Hack [Fri, 5 Oct 2007 11:19:02 +0000 (11:19 +0000)]
Cosmetics

[r16096]

16 years agofix negated set pnc with float compare problem
Matthias Braun [Thu, 4 Oct 2007 19:24:57 +0000 (19:24 +0000)]
fix negated set pnc with float compare problem

[r16091]

16 years ago- introduce an "end-block" to the absgraph, so the irg_end_block is known in a
Matthias Braun [Thu, 4 Oct 2007 19:18:05 +0000 (19:18 +0000)]
- introduce an "end-block" to the absgraph, so the irg_end_block is known in a
  dfs even if the program contains just an endless loop

[r16090]

16 years agocorrect register constraint for inb asm
Matthias Braun [Thu, 4 Oct 2007 16:12:55 +0000 (16:12 +0000)]
correct register constraint for inb asm

[r16089]

16 years agosuppress warnings
Michael Beck [Thu, 4 Oct 2007 16:12:24 +0000 (16:12 +0000)]
suppress warnings

[r16087]

16 years agofixed/improved assembler nodes
Matthias Braun [Thu, 4 Oct 2007 16:01:46 +0000 (16:01 +0000)]
fixed/improved assembler nodes

[r16086]

16 years agomore tricky asm tests
Matthias Braun [Thu, 4 Oct 2007 15:48:30 +0000 (15:48 +0000)]
more tricky asm tests

[r16085]

16 years agoadd the mode to the asm constraints
Michael Beck [Thu, 4 Oct 2007 14:55:23 +0000 (14:55 +0000)]
add the mode to the asm constraints

[r16081]

16 years agoMore signed/unsigned fixes for 64bit lowering.
Christoph Mallon [Thu, 4 Oct 2007 14:40:05 +0000 (14:40 +0000)]
More signed/unsigned fixes for 64bit lowering.

[r16080]

16 years agoBetter detection of sign extension for generating 32x32=64bit multiplication.
Christoph Mallon [Thu, 4 Oct 2007 14:38:49 +0000 (14:38 +0000)]
Better detection of sign extension for generating 32x32=64bit multiplication.

[r16079]

16 years agoManual CSE.
Christoph Mallon [Thu, 4 Oct 2007 12:45:07 +0000 (12:45 +0000)]
Manual CSE.

[r16078]

16 years agoa testcase for the just fixed deconv problem
Matthias Braun [Thu, 4 Oct 2007 12:26:34 +0000 (12:26 +0000)]
a testcase for the just fixed deconv problem

[r16077]

16 years agofirm revision and build changed to strings
Matthias Braun [Thu, 4 Oct 2007 12:09:30 +0000 (12:09 +0000)]
firm revision and build changed to strings

[r16076]

16 years agofixed deconv (always stop at nodes with multiple outs
Matthias Braun [Thu, 4 Oct 2007 11:35:21 +0000 (11:35 +0000)]
fixed deconv (always stop at nodes with multiple outs

[r16073]

16 years agoSwap the esp and value inputs of ia32_Push (so esp is before val). This is more consi...
Christoph Mallon [Thu, 4 Oct 2007 07:40:00 +0000 (07:40 +0000)]
Swap the esp and value inputs of ia32_Push (so esp is before val). This is more consistent because the source operand is last now. Further the AM specification is correct now.

[r16071]

16 years agoDo not transform a Shl by 0-3 into a Lea. A Lea with only index and no base always...
Christoph Mallon [Wed, 3 Oct 2007 21:18:57 +0000 (21:18 +0000)]
Do not transform a Shl by 0-3 into a Lea. A Lea with only index and no base always has a 4 byte displacement, so the opcode is longer than a Mov + Shl.

[r16070]

16 years agoIn is_2addr_code() test whether the flag arch_register_req_type_should_be_same is...
Christoph Mallon [Wed, 3 Oct 2007 21:03:40 +0000 (21:03 +0000)]
In is_2addr_code() test whether the flag arch_register_req_type_should_be_same is set, not if the type is exactly arch_register_req_type_should_be_same. This glitch led to missing affinity edges/optimisation units for nodes which have other constraints, too.

[r16069]

16 years agoFactorise the common code to transform binary operations which also consume the eflag...
Christoph Mallon [Wed, 3 Oct 2007 17:16:32 +0000 (17:16 +0000)]
Factorise the common code to transform binary operations which also consume the eflags (Adc and Sbb) into the new function gen_binop_flags().

[r16067]

16 years agodo NOT mirror pnc on swap_left_right anymore, as it isn't correct in the new flags...
Matthias Braun [Wed, 3 Oct 2007 17:10:41 +0000 (17:10 +0000)]
do NOT mirror pnc on swap_left_right anymore, as it isn't correct in the new flags models

[r16066]

16 years agoSbb is not commutative, so do not tell match_arguments() something different.
Christoph Mallon [Wed, 3 Oct 2007 16:59:53 +0000 (16:59 +0000)]
Sbb is not commutative, so do not tell match_arguments() something different.

[r16065]

16 years agorename another flipped to ins_permuted, ia32 transform phase is NOT safe for CSE
Matthias Braun [Wed, 3 Oct 2007 16:47:07 +0000 (16:47 +0000)]
rename another flipped to ins_permuted, ia32 transform phase is NOT safe for CSE

[r16064]

16 years agoBetter fix for the MacroBlock header
Michael Beck [Wed, 3 Oct 2007 16:24:15 +0000 (16:24 +0000)]
Better fix for the MacroBlock header

[r16063]

16 years agoMatch AM when transforming ia32_l_Mul and ia32_l_IMul.
Christoph Mallon [Wed, 3 Oct 2007 15:20:06 +0000 (15:20 +0000)]
Match AM when transforming ia32_l_Mul and ia32_l_IMul.

[r16062]

16 years agoWhen generating a ia32_Mul or ia32_IMul1OP mark them as commutative, not non-commutative.
Christoph Mallon [Wed, 3 Oct 2007 14:47:36 +0000 (14:47 +0000)]
When generating a ia32_Mul or ia32_IMul1OP mark them as commutative, not non-commutative.

[r16061]

16 years agoadded get_nodes_MacroBlock()
Michael Beck [Wed, 3 Oct 2007 14:21:31 +0000 (14:21 +0000)]
added get_nodes_MacroBlock()

[r16060]

16 years agorename pnc_flipped to ins_permuted and change back non-fix of cmov yesterday
Matthias Braun [Wed, 3 Oct 2007 13:50:55 +0000 (13:50 +0000)]
rename pnc_flipped to ins_permuted and change back non-fix of cmov yesterday

[r16059]

16 years agorenamed set_value/clear_value(): these names clash with the construction functions
Michael Beck [Wed, 3 Oct 2007 12:50:16 +0000 (12:50 +0000)]
renamed set_value/clear_value(): these names clash with the construction functions

[r16058]

16 years agoadd some more comments
Michael Beck [Wed, 3 Oct 2007 12:49:23 +0000 (12:49 +0000)]
add some more comments
rename peephole optimisation function

[r16057]

16 years agoimproved comments
Michael Beck [Wed, 3 Oct 2007 12:37:03 +0000 (12:37 +0000)]
improved comments

[r16056]

16 years agomade edges_node_deleted_kind() static
Michael Beck [Wed, 3 Oct 2007 12:36:32 +0000 (12:36 +0000)]
made edges_node_deleted_kind() static

[r16055]

16 years agoremoved C99 features
Michael Beck [Wed, 3 Oct 2007 12:35:45 +0000 (12:35 +0000)]
removed C99 features

[r16054]

16 years agoremoved C99 features
Michael Beck [Wed, 3 Oct 2007 12:34:13 +0000 (12:34 +0000)]
removed C99 features

[r16053]

16 years agoremoved GNU extension: void * are not allowed in arithmetic
Michael Beck [Wed, 3 Oct 2007 12:33:43 +0000 (12:33 +0000)]
removed GNU extension: void * are not allowed in arithmetic

[r16052]

16 years agouse is_Psi()
Michael Beck [Wed, 3 Oct 2007 12:18:42 +0000 (12:18 +0000)]
use is_Psi()

[r16051]

16 years agoReplace the parameter int commutative of gen_binop(), gen_binop_sse_float() and gen_b...
Christoph Mallon [Wed, 3 Oct 2007 10:22:34 +0000 (10:22 +0000)]
Replace the parameter int commutative of gen_binop(), gen_binop_sse_float() and gen_binop_x87_float() by match_flags_t flags for clarity and flexibility.

[r16050]

16 years agoRemove the node type ia32_int. It is unused and its specification is wrong (it always...
Christoph Mallon [Wed, 3 Oct 2007 08:52:45 +0000 (08:52 +0000)]
Remove the node type ia32_int. It is unused and its specification is wrong (it always has an immediate operand, never a register).

[r16049]

16 years agoRemove wrong AM specification from several nodes.
Christoph Mallon [Wed, 3 Oct 2007 08:29:44 +0000 (08:29 +0000)]
Remove wrong AM specification from several nodes.

[r16048]

16 years agovfprem is not capable of address mode.
Christoph Mallon [Wed, 3 Oct 2007 08:11:19 +0000 (08:11 +0000)]
vfprem is not capable of address mode.

[r16047]

16 years agoRemove stale comments about the transformation environment parameter.
Christoph Mallon [Wed, 3 Oct 2007 08:08:02 +0000 (08:08 +0000)]
Remove stale comments about the transformation environment parameter.

[r16046]

16 years agoRemove the unused node type ia32_l_Sar.
Christoph Mallon [Wed, 3 Oct 2007 08:06:37 +0000 (08:06 +0000)]
Remove the unused node type ia32_l_Sar.

[r16045]

16 years agoRemove the unused nodes ia32_l_vfdiv, ia32_l_vfmul, ia32_l_vfprem, ia32_l_vfsub.
Christoph Mallon [Wed, 3 Oct 2007 08:03:07 +0000 (08:03 +0000)]
Remove the unused nodes ia32_l_vfdiv, ia32_l_vfmul, ia32_l_vfprem, ia32_l_vfsub.

[r16044]

16 years agoAnnotate nodes with their AM capabilities.
Christoph Mallon [Wed, 3 Oct 2007 07:32:50 +0000 (07:32 +0000)]
Annotate nodes with their AM capabilities.

[r16043]

16 years agoReplace a magic number by an enum. Turn two if cascades into switches.
Christoph Mallon [Wed, 3 Oct 2007 07:30:01 +0000 (07:30 +0000)]
Replace a magic number by an enum. Turn two if cascades into switches.

[r16042]

16 years agoDirectly tie the ConvI2I8Bit node to the ConvI2I emitter instead of using an intermed...
Christoph Mallon [Wed, 3 Oct 2007 07:27:37 +0000 (07:27 +0000)]
Directly tie the ConvI2I8Bit node to the ConvI2I emitter instead of using an intermediate function.

[r16041]

16 years agoFix typo in comment.
Christoph Mallon [Wed, 3 Oct 2007 07:25:36 +0000 (07:25 +0000)]
Fix typo in comment.

[r16040]

16 years agowe still need an esp keep for allocas
Matthias Braun [Tue, 2 Oct 2007 18:34:23 +0000 (18:34 +0000)]
we still need an esp keep for allocas

[r16037]

16 years agofix cmov emitter
Matthias Braun [Tue, 2 Oct 2007 15:04:49 +0000 (15:04 +0000)]
fix cmov emitter

[r16036]

16 years agoavoid an extra keep for the Call esp projs
Matthias Braun [Tue, 2 Oct 2007 14:28:03 +0000 (14:28 +0000)]
avoid an extra keep for the Call esp projs

[r16035]

16 years ago- Route esp through calls
Matthias Braun [Tue, 2 Oct 2007 14:05:27 +0000 (14:05 +0000)]
- Route esp through calls
- Mark struct returning calls as modify_stack
- Cleanup benode a bit

[r16034]

16 years agoonly set compound_ret flag if it was really a ret and not a parameter
Matthias Braun [Tue, 2 Oct 2007 14:04:43 +0000 (14:04 +0000)]
only set compound_ret flag if it was really a ret and not a parameter

[r16033]

16 years agoreally fix convert problems/truncate committ
Matthias Braun [Tue, 2 Oct 2007 12:20:23 +0000 (12:20 +0000)]
really fix convert problems/truncate committ

[r16032]

16 years agofix tarval convert from pointer to signed int
Matthias Braun [Tue, 2 Oct 2007 11:54:16 +0000 (11:54 +0000)]
fix tarval convert from pointer to signed int

[r16031]

16 years ago- workaround and document ShrD/ShlD problems correctly this time
Matthias Braun [Tue, 2 Oct 2007 07:50:01 +0000 (07:50 +0000)]
- workaround and document ShrD/ShlD problems correctly this time
- some cleanups

[r16030]

16 years agoworkaround lowering problems
Matthias Braun [Tue, 2 Oct 2007 07:49:09 +0000 (07:49 +0000)]
workaround lowering problems

[r16029]

16 years agofix fehler89 by correctly truncating tarvals (wrote a new sc_truncate function)
Matthias Braun [Tue, 2 Oct 2007 07:46:21 +0000 (07:46 +0000)]
fix fehler89 by correctly truncating tarvals (wrote a new sc_truncate function)

[r16028]

16 years agofehler89
Matthias Braun [Mon, 1 Oct 2007 23:16:15 +0000 (23:16 +0000)]
fehler89

[r16027]

16 years agoAdd a should_be_same constraint for the second input of CMov.
Christoph Mallon [Mon, 1 Oct 2007 16:37:46 +0000 (16:37 +0000)]
Add a should_be_same constraint for the second input of CMov.

[r16026]

16 years agofix cmov AM bug, avoid some verify warning in beflags code
Matthias Braun [Mon, 1 Oct 2007 16:31:11 +0000 (16:31 +0000)]
fix cmov AM bug, avoid some verify warning in beflags code

[r16025]

16 years agolowering is allowed for unsigned types < 32bits
Matthias Braun [Mon, 1 Oct 2007 16:30:37 +0000 (16:30 +0000)]
lowering is allowed for unsigned types < 32bits

[r16024]

16 years agoAdd a missing Conv in the 64bit lowerer.
Christoph Mallon [Mon, 1 Oct 2007 13:32:41 +0000 (13:32 +0000)]
Add a missing Conv in the 64bit lowerer.

[r16023]

16 years agoFix fehler88: incorrect mode_b lowering of unsigned comparisons.
Christoph Mallon [Mon, 1 Oct 2007 13:08:48 +0000 (13:08 +0000)]
Fix fehler88: incorrect mode_b lowering of unsigned comparisons.

[r16022]

16 years agofehler88: wrong mode_b lowering of unsigned comparisons.
Christoph Mallon [Mon, 1 Oct 2007 13:07:49 +0000 (13:07 +0000)]
fehler88: wrong mode_b lowering of unsigned comparisons.

[r16021]

16 years agoAM for CMov, SSE floats, SubSP, AddSP
Matthias Braun [Mon, 1 Oct 2007 11:21:53 +0000 (11:21 +0000)]
AM for CMov, SSE floats, SubSP, AddSP

[r16020]

16 years agocmov AM test added
Matthias Braun [Mon, 1 Oct 2007 11:19:05 +0000 (11:19 +0000)]
cmov AM test added

[r16019]

16 years agomark methods with lowered struct params, correctly handle x86 abi for this case
Matthias Braun [Mon, 1 Oct 2007 11:11:30 +0000 (11:11 +0000)]
mark methods with lowered struct params, correctly handle x86 abi for this case

[r16018]

16 years agoImproved docu
Matthias Braun [Sun, 30 Sep 2007 20:38:48 +0000 (20:38 +0000)]
Improved docu

[r16017]

16 years agomore outreg query fixes
Matthias Braun [Sun, 30 Sep 2007 17:48:29 +0000 (17:48 +0000)]
more outreg query fixes

[r16016]

16 years agoadd assert for not getting bad out regs, and fix some bugs related to this
Matthias Braun [Sun, 30 Sep 2007 17:18:16 +0000 (17:18 +0000)]
add assert for not getting bad out regs, and fix some bugs related to this

[r16015]

16 years agosupport for fucom(p)i
Matthias Braun [Sun, 30 Sep 2007 15:38:27 +0000 (15:38 +0000)]
support for fucom(p)i

[r16014]

16 years ago- first real peephole optimisation mov 0, reg -> xor reg, reg when we don't
Matthias Braun [Sun, 30 Sep 2007 14:39:22 +0000 (14:39 +0000)]
- first real peephole optimisation mov 0, reg -> xor reg, reg when we don't
  care about flags
- fixed some bugs in bepeephole

[r16013]

16 years agostarted working on a peephole phase
Matthias Braun [Sun, 30 Sep 2007 12:33:07 +0000 (12:33 +0000)]
started working on a peephole phase

[r16012]

16 years ago- support for Ftst instruction, AM support for x87 float
Matthias Braun [Sun, 30 Sep 2007 12:32:01 +0000 (12:32 +0000)]
- support for Ftst instruction, AM support for x87 float

[r16011]

16 years agoadd index to register classes, change some fields to unsigned
Matthias Braun [Sun, 30 Sep 2007 12:30:19 +0000 (12:30 +0000)]
add index to register classes, change some fields to unsigned

[r16010]

16 years agoadd index to register classes, change some fields to unsigned
Matthias Braun [Sun, 30 Sep 2007 12:30:08 +0000 (12:30 +0000)]
add index to register classes, change some fields to unsigned

[r16009]

16 years agodon't reload before anchor node
Matthias Braun [Sun, 30 Sep 2007 12:28:47 +0000 (12:28 +0000)]
don't reload before anchor node

[r16008]

16 years agoGeneralise create_Immediate_from_int() to create_Immediate() to reduce code duplicati...
Christoph Mallon [Sat, 29 Sep 2007 16:09:03 +0000 (16:09 +0000)]
Generalise create_Immediate_from_int() to create_Immediate() to reduce code duplication a bit.

[r16007]

16 years agoRemove gen_bin_Not(). mode_b nots should be lowered already.
Christoph Mallon [Sat, 29 Sep 2007 15:49:54 +0000 (15:49 +0000)]
Remove gen_bin_Not(). mode_b nots should be lowered already.

[r16006]

16 years agoFix r16004.
Christoph Mallon [Sat, 29 Sep 2007 15:48:33 +0000 (15:48 +0000)]
Fix r16004.

[r16005]

16 years agoInline gen_Minus_ex() into its only caller gen_Minus().
Christoph Mallon [Sat, 29 Sep 2007 15:36:14 +0000 (15:36 +0000)]
Inline gen_Minus_ex() into its only caller gen_Minus().

[r16004]

16 years agoFix wrong emitter specifications of CvtSI2SS and CvtSI2SD.
Christoph Mallon [Sat, 29 Sep 2007 14:47:51 +0000 (14:47 +0000)]
Fix wrong emitter specifications of CvtSI2SS and CvtSI2SD.

[r16003]

16 years agoRemove unused operand specifications.
Christoph Mallon [Sat, 29 Sep 2007 14:44:43 +0000 (14:44 +0000)]
Remove unused operand specifications.

[r16002]

16 years agoRemove unused operand specifications.
Christoph Mallon [Sat, 29 Sep 2007 14:44:08 +0000 (14:44 +0000)]
Remove unused operand specifications.

[r16001]

16 years agoIn emit_ia32_Conv_with_FP() the operands were swapped in the source AM case.
Christoph Mallon [Sat, 29 Sep 2007 14:38:07 +0000 (14:38 +0000)]
In emit_ia32_Conv_with_FP() the operands were swapped in the source AM case.

[r16000]

16 years agoRemove the parameter produces_result from ia32_emit_binop(). It is only used for...
Christoph Mallon [Sat, 29 Sep 2007 14:34:13 +0000 (14:34 +0000)]
Remove the parameter produces_result from ia32_emit_binop(). It is only used for an assert.

[r15999]

16 years agoxZero produses its result in outreg 0, not in the non-existent outreg 1.
Christoph Mallon [Sat, 29 Sep 2007 14:26:30 +0000 (14:26 +0000)]
xZero produses its result in outreg 0, not in the non-existent outreg 1.

[r15998]

16 years agoIn get_out_reg() assert that the requested outreg position is 0 when the node is...
Christoph Mallon [Sat, 29 Sep 2007 14:26:01 +0000 (14:26 +0000)]
In get_out_reg() assert that the requested outreg position is 0 when the node is not mode_T.

[r15997]

16 years agocorrect should_be fields in boolopts testapp
Matthias Braun [Sat, 29 Sep 2007 12:09:59 +0000 (12:09 +0000)]
correct should_be fields in boolopts testapp

[r15996]

16 years agoimprove a X 0 lowering a bit
Matthias Braun [Sat, 29 Sep 2007 12:05:04 +0000 (12:05 +0000)]
improve a X 0 lowering a bit

[r15995]

16 years agoremove unnecessary (since lower_mode_b does it better) and wrong Mux optimisation...
Matthias Braun [Sat, 29 Sep 2007 12:04:39 +0000 (12:04 +0000)]
remove unnecessary (since lower_mode_b does it better) and wrong Mux optimisation, combine syncs with syncs

[r15994]