- 26 Apr, 2012 1 commit
-
-
Matthias Braun authored
- We now always output dwarf3 so we can use DW_OP_call_frame_cfa and avoid construction location lists, but just reuse the callframe info lists. - Backends have to emit debug info as callframe calculation changes: The ia32 backend has a preliminary implementation which assumes esp offset of frame_type_size at the beginning of a block (currently always true), the no-omit-fp mode assumes ebp relative addressing (which is correct except for the prolog/epilogue insns)
-
- 06 Mar, 2012 1 commit
-
-
Matthias Braun authored
-
- 15 Dec, 2011 1 commit
-
-
Matthias Braun authored
unknown_type, code_type, none_type, unknown_entity reference are hold in the irprog now. This makes handling more consistent since now all types and entities are equally part of irprog.
-
- 14 Nov, 2011 1 commit
-
-
Matthias Braun authored
-
- 10 Nov, 2011 1 commit
-
-
Matthias Braun authored
-
- 20 Oct, 2011 1 commit
-
-
Matthias Braun authored
-
- 13 Sep, 2011 1 commit
-
-
Matthias Braun authored
returns_twice handling was broken in the ia32-backend (the only real beabi user) for a long time now. Just noone noticed because our frontends lacked the special treatment to set the flag correctly. Turned out setjmp/longjmp on ia32 save/restore the registers anyway so not doing anything is fine here.
-
- 06 Sep, 2011 1 commit
-
-
Matthias Braun authored
-
- 22 Aug, 2011 1 commit
-
-
Matthias Braun authored
-
- 17 Aug, 2011 3 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 15 Aug, 2011 1 commit
-
-
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)
-
- 05 Aug, 2011 2 commits
-
-
Matthias Braun authored
So sparc can handle this case now.
-
Matthias Braun authored
Use a special kind of entity on the frame type instead of a value_type struct inside a method type. This makes replacement of function types slightly easier (it's still a complex operation though) and handling in the backend a bit more consistent since it's more or less a normal stack access (with special offsets).
-
- 04 Aug, 2011 2 commits
-
-
Matthias Braun authored
-
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
-
- 27 May, 2011 1 commit
-
-
Matthias Braun authored
merge start-block successor with start-block in backend (necessary after equivalent_node_Block is gone)
-
- 25 May, 2011 1 commit
-
-
Andreas Zwinkau authored
Fixes opt/localopts2 Because of Phis blocks cannot be equivalent. The cfopt must do all block merging. For example, consider the case where block A has one predecessor block B, which contains a Jmp. Naively, we might exchange(A,B). However, A might contain a Phi with one operand, then the graph is broken afterwards, since we move the Phi into B as well.
-
- 06 May, 2011 2 commits
-
-
Andreas Zwinkau authored
-
Matthias Braun authored
-
- 15 Apr, 2011 1 commit
-
-
Matthias Braun authored
-
- 13 Apr, 2011 4 commits
-
-
Michael Beck authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
- 08 Apr, 2011 5 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
- 16 Mar, 2011 1 commit
-
-
Matthias Braun authored
-
- 04 Mar, 2011 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 22 Feb, 2011 1 commit
-
-
Andreas Zwinkau authored
Difference of idx for Calls with no order relation is stable, but may lead to circular dependencies. Fixed by looking at the heights first. Fixes backend/transform_loop.c (with -O0) [r28436]
-
- 09 Feb, 2011 1 commit
-
-
Matthias Braun authored
[r28340]
-
- 08 Feb, 2011 1 commit
-
-
Matthias Braun authored
[r28337]
-
- 25 Jan, 2011 1 commit
-
-
Michael Beck authored
[r28272]
-