summaryrefslogtreecommitdiffhomepage
path: root/ir/be/beirg.h
Commit message (Collapse)AuthorAge
* amd64, be, ia32, sparc: Record that there is a twice returning call (setjmp) ↵Christoph Mallon2018-04-03
| | | | | | centrally in the birg. This way not each backend has to keep a separate flag and also does not need to manually call be_forbid_coalescing().
* be: Rewrite stack frame handlingMatthias Braun2016-04-04
| | | | | | | | | | | | | | | | | | | | This is a bigger rewrite of stack frame handling in the backend: - Do the stack frame type layout late, after all the spill slots have been created. This way we can avoid (and remove) the brittle frame_alloc_area(). - Standardize the meaning of stack entity offsets. After stack frame type layout they are relative to the stack pointer position at the beginning of the function. It is all in one type now, no splitting into "arg", "between" and "stack_frame" type anymore. - Generalize the stack pointer simulation code to work with a single callback. Represent stack state as current offset and align_padding number. Now that callbacks can access and modify them both we do not need custom code in the sparc backend anymore. - Remove alignment specification on IncSP, only keep a ignore_align flag used for the last IncSP that has to remove all existing sp adjustments and may end up on a misaligned SP on ia32/amd64. - Align stack by default on ia32+amd64 backends.
* Move ir_graph struct from irtypes.h to irgraph_t.h, cleanupMatthias Braun2015-09-10
|
* Remove produces_sp register constraintMatthias Braun2015-07-01
| | | | | | | | We can easily identify the outputs producing a stack pointer by looking if the stack pointer register is assigned. Unfortunately this also needed a new mechanism to tell the verifier that some registers are not in SSA form (all the time) which needs a few extra lines in each backend.
* restrict to 80 colsMatthias Braun2015-07-01
|
* be: Remove struct arch_env_t.Christoph Mallon2015-01-18
|
* bestack: code cleanup, use C99Matthias Braun2014-09-15
|
* remove license stuff from filesMatthias Braun2012-12-12
| | | | | Just state the copyright and the project the files belong to. You can then find the COPYING file for the whole project.
* bestack: Simplify be_abi_fix_stack_nodes() using be_create_reg_req().Christoph Mallon2012-11-27
|
* beabi: Pass be_abi_irg_t around locally instead of storing it in be_irg_t.Christoph Mallon2012-11-24
|
* be: Remove the irg from the birg.Christoph Mallon2012-11-24
| | | | There was only one user of this information left, which is changed to directly use irgs.
* Assert that there is currently no object under construction, when calling ↵Christoph Mallon2012-08-02
| | | | be_get_be_obst().
* simplify and cleanup execfreq APIMatthias Braun2012-07-30
|
* move domfront from be to anaMatthias Braun2012-07-13
| | | | Also add a GRAPH_PROPERTY for the analysis state.
* be: expose be_options variable globallyMatthias Braun2012-06-06
|
* dwarf: initial support for callframe and paramsMatthias Braun2012-04-26
| | | | | | | | | | - 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)
* belive: cleanup livness assure/invalidate APIMatthias Braun2011-12-22
| | | | This also plugs liveness related memory leaks
* remove $Id$, it doesn't work with git anywayMatthias Braun2011-11-10
|
* all backends have decreasing stackMatthias Braun2011-04-08
|
* Fix typos in comments: s/it's/its/ and related corrections.Christoph Mallon2011-03-09
|
* backend: put ignore regs into beirgMatthias Braun2010-10-08
| | | | [r28072]
* eliminate the unnecessary and especially confusing concept of a ↵Matthias Braun2010-09-22
| | | | | | 'code_generator' an isa-interface is enough [r28009]
* refactoring: split stackframe handling completely from beabi structMatthias Braun2010-09-10
| | | | [r27992]
* reorganize beabi - save wether we are using omit_fp in the stack_layout ↵Matthias Braun2010-07-10
| | | | | | structure [r27732]
* remove unnecessary members from be_abi_irg_t structure, cleanup beabi a bitMatthias Braun2010-07-06
| | | | [r27703]
* put stack_layout into beirg instead of be_abi datastructuresMatthias Braun2010-07-05
| | | | [r27695]
* convert a few more place that mention birg into generic ir_graph* stuffMatthias Braun2010-07-05
| | | | [r27694]
* convert remaining APIs from be_irg_t* to ir_graph*Matthias Braun2010-07-02
| | | | [r27693]
* change register allocator and related interfaces to use ir_graph* instead of ↵Matthias Braun2010-07-02
| | | | | | be_irg_t* [r27692]
* - change various be_get_birg_XXX functions to be_get_irg_XXX functions.Matthias Braun2010-07-02
| | | | [r27690]
* - Bigger refactoring and cleanup in backend:Matthias Braun2009-09-17
| | | | | | | | | * benodes store the out register requirements in backend_info now (this is work towards killing the register_requirement callbacks) * ir_graph has a pointer to beirg now * Other cleanups [r26540]
* reorganize backend headers (kill some _t variants in favor of a be_types.h)Matthias Braun2009-08-05
| | | | [r26317]
* update copyright messageMichael Beck2008-01-02
| | | | [r17143]
* * Changed the liveness API:Sebastian Hack2007-06-14
| | | | | | | | | | | | | | - The liveness in the birg stays always the same - Invalidation is done with be_liveness_invalidate() - Each algo has to specify if it needs only liveness checks be_liveness_assure_chk() or the complete liveness sets for use with be_lv_foreach, etc. be_liveness_assure_sets() * Adapted all the files to these changes * made bessadestr.c liveness updating [r14506]
* * Added a new file: beintlive_t.h which subsumes all interferene/liveness checksSebastian Hack2007-05-10
| | | | | | | | | | | | | | | | | | | - it uses the new liveness checking algos in ana/irlivechk.h - value_dominates, etc. was erased from bera.h because it does not belong there * bechordal.c features an experimental coloring (by defualt disabled by macro) which can color the routine in a single pass without building the "borders". A long term goal is to disable borders completely but they are used in other places, too. * The 1st parameter of values_interfere is now a birg and not a be_lv_t. There is now a special routine lv_values_interfere() for those who want to use the computed liveness explicitly. changing the parameter makes it more easy to switch to other liveness implementations. All other files were modified to respect the changes [r13762]
* removed useless includesMichael Beck2007-05-02
| | | | [r13572]
* unified mein file commentsChristian Würdig2007-04-30
| | | | | | | | | unified .h #ifndef ... #define ... changed some indenting removed some unused code removed beuses_t.h as unused header [r13559]
* added new licence headerChristian Würdig2007-04-27
| | | | [r13508]
* - Split bearch.h correctly into bearch.h and bearch_t.hMatthias Braun2007-04-18
| | | | | | - Started working on flags [r12716]
* rewritten be_ssa_constr which isn't using sets anymore, started working on a ↵Matthias Braun2007-03-26
| | | | 'state' register type
* add some consts to beirg functionsMatthias Braun2006-12-18
|
* move birg to an own file, use more of the birg analysis dataMatthias Braun2006-12-14