Matthias Braun [Sun, 7 Oct 2007 17:06:50 +0000 (17:06 +0000)]
testcase for strange loop depths in loopana
[r16116]
Matthias Braun [Sun, 7 Oct 2007 17:05:12 +0000 (17:05 +0000)]
parameter loads are floating
[r16115]
Matthias Braun [Sun, 7 Oct 2007 17:00:34 +0000 (17:00 +0000)]
we have to use the pinned state from the load when using AM, mark all AM supporting ops als exc_pinned
[r16114]
Christoph Mallon [Sun, 7 Oct 2007 15:50:49 +0000 (15:50 +0000)]
Remove whitespace at EOL and empty lines at EOF.
[r16112]
Christoph Mallon [Sun, 7 Oct 2007 15:28:55 +0000 (15:28 +0000)]
Simplify consumer_dom_dca().
[r16111]
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]
Matthias Braun [Sat, 6 Oct 2007 19:31:27 +0000 (19:31 +0000)]
add an option to disable calling convention optimisation
[r16108]
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]
Matthias Braun [Sat, 6 Oct 2007 17:05:20 +0000 (17:05 +0000)]
use unknowns instead of Bads while constructing phis
[r16106]
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]
Michael Beck [Fri, 5 Oct 2007 22:42:00 +0000 (22:42 +0000)]
made parse_asm_constraint() static
[r16103]
Michael Beck [Fri, 5 Oct 2007 22:41:31 +0000 (22:41 +0000)]
doxygen comment added
[r16102]
Michael Beck [Fri, 5 Oct 2007 12:37:02 +0000 (12:37 +0000)]
preliminary added missing *stat_ev_int()
[r16099]
Sebastian Hack [Fri, 5 Oct 2007 11:19:40 +0000 (11:19 +0000)]
A small (very small) optimization
[r16097]
Sebastian Hack [Fri, 5 Oct 2007 11:19:02 +0000 (11:19 +0000)]
Cosmetics
[r16096]
Matthias Braun [Thu, 4 Oct 2007 19:24:57 +0000 (19:24 +0000)]
fix negated set pnc with float compare problem
[r16091]
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]
Matthias Braun [Thu, 4 Oct 2007 16:12:55 +0000 (16:12 +0000)]
correct register constraint for inb asm
[r16089]
Michael Beck [Thu, 4 Oct 2007 16:12:24 +0000 (16:12 +0000)]
suppress warnings
[r16087]
Matthias Braun [Thu, 4 Oct 2007 16:01:46 +0000 (16:01 +0000)]
fixed/improved assembler nodes
[r16086]
Matthias Braun [Thu, 4 Oct 2007 15:48:30 +0000 (15:48 +0000)]
more tricky asm tests
[r16085]
Michael Beck [Thu, 4 Oct 2007 14:55:23 +0000 (14:55 +0000)]
add the mode to the asm constraints
[r16081]
Christoph Mallon [Thu, 4 Oct 2007 14:40:05 +0000 (14:40 +0000)]
More signed/unsigned fixes for 64bit lowering.
[r16080]
Christoph Mallon [Thu, 4 Oct 2007 14:38:49 +0000 (14:38 +0000)]
Better detection of sign extension for generating 32x32=64bit multiplication.
[r16079]
Christoph Mallon [Thu, 4 Oct 2007 12:45:07 +0000 (12:45 +0000)]
Manual CSE.
[r16078]
Matthias Braun [Thu, 4 Oct 2007 12:26:34 +0000 (12:26 +0000)]
a testcase for the just fixed deconv problem
[r16077]
Matthias Braun [Thu, 4 Oct 2007 12:09:30 +0000 (12:09 +0000)]
firm revision and build changed to strings
[r16076]
Matthias Braun [Thu, 4 Oct 2007 11:35:21 +0000 (11:35 +0000)]
fixed deconv (always stop at nodes with multiple outs
[r16073]
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]
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]
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]
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]
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]
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]
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]
Michael Beck [Wed, 3 Oct 2007 16:24:15 +0000 (16:24 +0000)]
Better fix for the MacroBlock header
[r16063]
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]
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]
Michael Beck [Wed, 3 Oct 2007 14:21:31 +0000 (14:21 +0000)]
added get_nodes_MacroBlock()
[r16060]
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]
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]
Michael Beck [Wed, 3 Oct 2007 12:49:23 +0000 (12:49 +0000)]
add some more comments
rename peephole optimisation function
[r16057]
Michael Beck [Wed, 3 Oct 2007 12:37:03 +0000 (12:37 +0000)]
improved comments
[r16056]
Michael Beck [Wed, 3 Oct 2007 12:36:32 +0000 (12:36 +0000)]
made edges_node_deleted_kind() static
[r16055]
Michael Beck [Wed, 3 Oct 2007 12:35:45 +0000 (12:35 +0000)]
removed C99 features
[r16054]
Michael Beck [Wed, 3 Oct 2007 12:34:13 +0000 (12:34 +0000)]
removed C99 features
[r16053]
Michael Beck [Wed, 3 Oct 2007 12:33:43 +0000 (12:33 +0000)]
removed GNU extension: void * are not allowed in arithmetic
[r16052]
Michael Beck [Wed, 3 Oct 2007 12:18:42 +0000 (12:18 +0000)]
use is_Psi()
[r16051]
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]
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]
Christoph Mallon [Wed, 3 Oct 2007 08:29:44 +0000 (08:29 +0000)]
Remove wrong AM specification from several nodes.
[r16048]
Christoph Mallon [Wed, 3 Oct 2007 08:11:19 +0000 (08:11 +0000)]
vfprem is not capable of address mode.
[r16047]
Christoph Mallon [Wed, 3 Oct 2007 08:08:02 +0000 (08:08 +0000)]
Remove stale comments about the transformation environment parameter.
[r16046]
Christoph Mallon [Wed, 3 Oct 2007 08:06:37 +0000 (08:06 +0000)]
Remove the unused node type ia32_l_Sar.
[r16045]
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]
Christoph Mallon [Wed, 3 Oct 2007 07:32:50 +0000 (07:32 +0000)]
Annotate nodes with their AM capabilities.
[r16043]
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]
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]
Christoph Mallon [Wed, 3 Oct 2007 07:25:36 +0000 (07:25 +0000)]
Fix typo in comment.
[r16040]
Matthias Braun [Tue, 2 Oct 2007 18:34:23 +0000 (18:34 +0000)]
we still need an esp keep for allocas
[r16037]
Matthias Braun [Tue, 2 Oct 2007 15:04:49 +0000 (15:04 +0000)]
fix cmov emitter
[r16036]
Matthias Braun [Tue, 2 Oct 2007 14:28:03 +0000 (14:28 +0000)]
avoid an extra keep for the Call esp projs
[r16035]
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]
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]
Matthias Braun [Tue, 2 Oct 2007 12:20:23 +0000 (12:20 +0000)]
really fix convert problems/truncate committ
[r16032]
Matthias Braun [Tue, 2 Oct 2007 11:54:16 +0000 (11:54 +0000)]
fix tarval convert from pointer to signed int
[r16031]
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]
Matthias Braun [Tue, 2 Oct 2007 07:49:09 +0000 (07:49 +0000)]
workaround lowering problems
[r16029]
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]
Matthias Braun [Mon, 1 Oct 2007 23:16:15 +0000 (23:16 +0000)]
fehler89
[r16027]
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]
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]
Matthias Braun [Mon, 1 Oct 2007 16:30:37 +0000 (16:30 +0000)]
lowering is allowed for unsigned types < 32bits
[r16024]
Christoph Mallon [Mon, 1 Oct 2007 13:32:41 +0000 (13:32 +0000)]
Add a missing Conv in the 64bit lowerer.
[r16023]
Christoph Mallon [Mon, 1 Oct 2007 13:08:48 +0000 (13:08 +0000)]
Fix fehler88: incorrect mode_b lowering of unsigned comparisons.
[r16022]
Christoph Mallon [Mon, 1 Oct 2007 13:07:49 +0000 (13:07 +0000)]
fehler88: wrong mode_b lowering of unsigned comparisons.
[r16021]
Matthias Braun [Mon, 1 Oct 2007 11:21:53 +0000 (11:21 +0000)]
AM for CMov, SSE floats, SubSP, AddSP
[r16020]
Matthias Braun [Mon, 1 Oct 2007 11:19:05 +0000 (11:19 +0000)]
cmov AM test added
[r16019]
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]
Matthias Braun [Sun, 30 Sep 2007 20:38:48 +0000 (20:38 +0000)]
Improved docu
[r16017]
Matthias Braun [Sun, 30 Sep 2007 17:48:29 +0000 (17:48 +0000)]
more outreg query fixes
[r16016]
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]
Matthias Braun [Sun, 30 Sep 2007 15:38:27 +0000 (15:38 +0000)]
support for fucom(p)i
[r16014]
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]
Matthias Braun [Sun, 30 Sep 2007 12:33:07 +0000 (12:33 +0000)]
started working on a peephole phase
[r16012]
Matthias Braun [Sun, 30 Sep 2007 12:32:01 +0000 (12:32 +0000)]
- support for Ftst instruction, AM support for x87 float
[r16011]
Matthias Braun [Sun, 30 Sep 2007 12:30:19 +0000 (12:30 +0000)]
add index to register classes, change some fields to unsigned
[r16010]
Matthias Braun [Sun, 30 Sep 2007 12:30:08 +0000 (12:30 +0000)]
add index to register classes, change some fields to unsigned
[r16009]
Matthias Braun [Sun, 30 Sep 2007 12:28:47 +0000 (12:28 +0000)]
don't reload before anchor node
[r16008]
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]
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]
Christoph Mallon [Sat, 29 Sep 2007 15:48:33 +0000 (15:48 +0000)]
Fix r16004.
[r16005]
Christoph Mallon [Sat, 29 Sep 2007 15:36:14 +0000 (15:36 +0000)]
Inline gen_Minus_ex() into its only caller gen_Minus().
[r16004]
Christoph Mallon [Sat, 29 Sep 2007 14:47:51 +0000 (14:47 +0000)]
Fix wrong emitter specifications of CvtSI2SS and CvtSI2SD.
[r16003]
Christoph Mallon [Sat, 29 Sep 2007 14:44:43 +0000 (14:44 +0000)]
Remove unused operand specifications.
[r16002]
Christoph Mallon [Sat, 29 Sep 2007 14:44:08 +0000 (14:44 +0000)]
Remove unused operand specifications.
[r16001]
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]
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]
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]
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]