- 10 Nov, 2011 1 commit
-
-
Matthias Braun authored
-
- 04 Nov, 2011 4 commits
-
-
Matthias Braun authored
Some peephole optimisations enable others, so splitting into multiple passes makes sense.
-
Matthias Braun authored
A test can exactly be removed if we are only interested in the sign and zero flag. Rewrote and refactored code. Now we don't miss some cases anymore where only sign was requested.
-
Matthias Braun authored
-
Matthias Braun authored
-
- 02 Nov, 2011 2 commits
-
-
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).
-
Matthias Braun authored
-
- 27 Oct, 2011 5 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
This also means that dependent modules like bedbgout should be initialized by begnuas.
-
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
-
Matthias Braun authored
-
Matthias Braun authored
They're adding more noise than they provide gain in readability. They also make extra work to keep up to date.
-
- 25 Oct, 2011 1 commit
-
-
Christoph Mallon authored
It is just an unnecessary node, which the middleend does not understand and therefore cannot optimize.
-
- 20 Oct, 2011 2 commits
-
-
Matthias Braun authored
They have been unnecessary aliases for is_SymConst_addr_ent() and get_SymConst_entity().
-
Matthias Braun authored
-
- 17 Oct, 2011 2 commits
-
-
Matthias Braun authored
This simplifies the code and should make it slightly faster
-
yb9976 authored
This fixes backend/builtin_parityl.c and backend/builtin_parityll.c.
-
- 27 Sep, 2011 2 commits
-
-
Matthias Braun authored
This was an odd convention from the past, there's no need for it anymore.
-
Manuel Mohr authored
-
- 23 Sep, 2011 1 commit
-
-
Manuel Mohr authored
-
- 22 Sep, 2011 1 commit
-
-
Matthias Braun authored
backends can use this to allow all mux nodes which get optimized away by the middleend anyway. This fixes abs handling on sparc.
-
- 21 Sep, 2011 1 commit
-
-
Matthias Braun authored
-
- 15 Sep, 2011 3 commits
-
-
yb9976 authored
-
Matthias Braun authored
- Make API private as it should only be called by backends - Let ia32 backend create special ia32_Set nodes instead of relying on muxes which must not be touched anymore - Does not create ConvB nodes anymore but instead produces the Cmp directly. (All backends did this anyway during code-selection so I was able to leave this case out code-selection) - First collect nodes to lower, then lower them. This avoids robustness problems when transforming the graph while at the same time walking it.
-
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.
-
- 13 Sep, 2011 1 commit
-
-
yb9976 authored
This fixes backend/float_ret_sse.c with -O1.
-
- 12 Sep, 2011 1 commit
-
-
Matthias Braun authored
-
- 08 Sep, 2011 1 commit
-
-
Matthias Braun authored
Implement a generic way to lower compound-call-arguments. Parameters are prepared on the stackframe and passed as a pointer to the function.
-
- 01 Sep, 2011 2 commits
-
-
Manuel Mohr authored
Old version used parameter.
-
Manuel Mohr authored
Backends can configure CopyB lowering, so that it's possible to keep CopyB nodes in a certain size range for special backend-specific optimizations. Furthermore, large CopyBs are turned into memcpy calls.
-
- 23 Aug, 2011 1 commit
-
-
Matthias Braun authored
-
- 19 Aug, 2011 3 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 17 Aug, 2011 2 commits
-
-
Matthias Braun authored
So we are not forced to use the generic be_Spill, be_Reload functions which don't work correctly with double-width register requirements. This should really fix sparc float spill/reload this time.
-
Matthias Braun authored
-
- 15 Aug, 2011 3 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
-
Matthias Braun authored
-
- 12 Aug, 2011 1 commit
-
-
Matthias Braun authored
-