- 07 Dec, 2011 1 commit
-
-
Matthias Braun authored
memops are nodes that have memory inputs, you can generically query them for their memory input. We can also get rid of get_fragile_op_mem in favor of get_memop_mem.
-
- 10 Nov, 2011 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 02 Nov, 2011 1 commit
-
-
Matthias Braun authored
This is the new way of handling switch-jumps. The node contains a table which maps (ranges of) input values to proj numbers. Compared to a Cond-node this results in a clean consecutive sequence of Proj numbers (no searching for a free number for the default_pn anymore) and allows factoring multiple cases jumping to the same block in a single Proj (though we still need the optimisation in cfopt for that).
-
- 27 Oct, 2011 1 commit
-
-
Matthias Braun authored
The main change here is splitting new_ir_mode into new_int_mode, new_reference_mode and new_float_mode. You can now specify mantissa+exponent size in new_float_mode. This also changes: - x86 80bit-FP mode is NOT a ieee754 don't put "ieee754" into functions names that can also handle x86 80bit fps - Move ieee_descriptor_t from tarval module into ir_mode struct (and rename to float_descriptor_t) - Introduce mode_Q which represents binary128 from ieee754 - You can ask float modes for mantissa/exponent sizes now - Fix endianess when emitting big float values in begnuas - A bunch of long double fixes in ia32: the mode there has 10bytes (80bit) but the variables typically are 12 or 16 byte big - This fixes some problems of sparc binary128 handling
-
- 25 Oct, 2011 1 commit
-
-
Christoph Mallon authored
It is just an unnecessary node, which the middleend does not understand and therefore cannot optimize.
-
- 15 Sep, 2011 1 commit
-
-
Matthias Braun authored
Some backends create nodes in their lower_for_target phases already. These nodes are placeholders for real backend nodes later, in contrast they do not have register requirements or backend attributes. Simplified this by allowing custom dumpers for them and leaving out the backend node structs.
-
- 15 Aug, 2011 2 commits
-
-
Matthias Braun authored
This tries to get the names in a consistent format. We basically have 2 views on register allocation/constraints now: 1) Register Requirements and Assigments are per-instruction. Each instruction has requirements on its inputs and outputs, register get assigned for outputs of an instruction (assignment is an attribute of an instruction, not of the Proj-nodes). The internal datastructures model this form! The functions here have the form: arch_get_irn_register_req_in(node, input_nr) arch_get_irn_register_in(node, input_nr) arch_get_irn_register_req_out(node, output_nr) arch_set_irn_register_out(node, output_nr, register) 2) Register Requirements and Assignments are on firm-values. This view allows to query/assign requirements and registers at the Proj nodes instead of the repsective predecessors. This is a convenience interface modeled on top of the other! The functions have the form: arch_get_irn_register_req(node) arch_get_irn_register(node) arch_set_irn_register(node, register)
-
Matthias Braun authored
-
- 27 Jul, 2011 1 commit
-
-
Christoph Mallon authored
This should fix 403.gcc. A SBB with AM could not fulfill its should_be_same contraint, so the AM gets split from the SBB. The Load of the AM gets assigned the out register of the SBB, which violates the !in_r5 constraint of the SBB. Therefore it's necessary to turn the SBB into NOT+ADC.
-
- 11 Jun, 2011 1 commit
-
-
Matthias Braun authored
-
- 08 Jun, 2011 1 commit
-
-
Michael Beck authored
The callee/caller saved information is not constant accross different ABI's, so don't make it constant. Instead, all BE that still use beabi provide a callback now. This allows to implement support for x64_64/Win32 and is a necessary step for the combined x86 BE.
-
- 01 Jun, 2011 1 commit
-
-
Matthias Braun authored
-
- 25 May, 2011 1 commit
-
-
Matthias Braun authored
- The pns of X_regular and X_except are annotated in the opcode now. - The memory input is annotated in the opcode now - only nodes with X_regular, X_except are marked fragile
-
- 23 May, 2011 1 commit
-
-
Matthias Braun authored
We can still use ia32 ShlD, ShrD functions by matching Or(Shl,Shr) patterns in the ia32 transformer.
-
- 28 Apr, 2011 1 commit
-
-
Matthias Braun authored
add unknown_jump opflag for the special case of a jump where we can't directly influence the destination and can't predict/change them
-
- 08 Apr, 2011 1 commit
-
-
Matthias Braun authored
-
- 30 Mar, 2011 1 commit
-
-
Matthias Braun authored
-
- 22 Mar, 2011 1 commit
-
-
Matthias Braun authored
-
- 17 Feb, 2011 2 commits
-
-
Matthias Braun authored
[r28391]
-
Matthias Braun authored
reworked ia32 condition code handling, remove backend Bound support (really someone should lower it before the backend [r28386]
-
- 14 Nov, 2010 1 commit
-
-
Michael Beck authored
[r28139]
-
- 04 Nov, 2010 1 commit
-
-
Matthias Braun authored
[r28127]
-
- 22 Sep, 2010 1 commit
-
-
Matthias Braun authored
[r28010]
-
- 15 Jul, 2010 3 commits
-
-
Matthias Braun authored
[r27746]
-
Matthias Braun authored
change backend node specification to use whole words instead of cryptical 1-char abreviations for flags [r27745]
-
Matthias Braun authored
[r27741]
-
- 26 Jun, 2010 1 commit
-
-
Christoph Mallon authored
[r27663]
-
- 10 Apr, 2010 1 commit
-
-
Michael Beck authored
[r27369]
-
- 07 Apr, 2010 1 commit
-
-
Matthias Braun authored
[r27356]
-
- 06 Apr, 2010 1 commit
-
-
Matthias Braun authored
[r27347]
-
- 15 Mar, 2010 1 commit
-
-
Matthias Braun authored
[r27297]
-
- 12 Feb, 2010 1 commit
-
-
Matthias Braun authored
[r27129]
-
- 01 Feb, 2010 1 commit
-
-
Matthias Braun authored
[r27021]
-
- 19 Jan, 2010 1 commit
-
-
Matthias Braun authored
interface now. - Fix several bugs in the ia32 version of it - Unfortunately this leads to the obscure Doz construct being always created (instead of only when cmovs are allowed) and firm generates broken code for that (testcase coming in 5 minutes) [r26985]
-
- 18 Jan, 2010 2 commits
-
-
Matthias Braun authored
[r26983]
-
Michael Beck authored
CSE neutral to its users, i.e. op(..., x, ...) ~ op(..., y, ...) if x and y are both neutral. Setting this property to ia32_ProduceVal nodes allow to CSE nodes that differ in ProduceVals only (which themself NEVER are cse'd). This "fixes" divmod. [r26981]
-
- 17 Jan, 2010 1 commit
-
-
Michael Beck authored
Partly undo r26950: there seems be be subtile difference between get_flags_node() and determine_final_pnc() that are triggered by that change. This should fix 175.vpr. [r26977]
-
- 11 Jan, 2010 1 commit
-
-
Matthias Braun authored
panic instead of wrong results for Set and CMov with float compare. Rename Set to Setcc and CMov to CMovcc [r26950]
-
- 25 Nov, 2009 1 commit
-
-
Matthias Braun authored
[r26742]
-