summaryrefslogtreecommitdiffhomepage
path: root/ir/be/benode.c
Commit message (Collapse)AuthorAge
* beasm: Allow be_Asm nodes as control flow nodes.Christoph Mallon2019-04-05
| | | | This is done by treating them as fragile.
* be: Dump the text template of be_Asm.Christoph Mallon2019-04-01
|
* be: Mark be_Asm as memory user.Christoph Mallon2019-03-04
|
* be: Remove the parameter 'opar' from new_be_op().Christoph Mallon2019-03-04
| | | | All callers pass 'oparity_any'.
* ir: Remove the unnecessary distinction between oparity_variable and oparity_any.Christoph Mallon2018-08-05
|
* be: Remove the redundant parameter 'mode' from be_new_Phi().Christoph Mallon2018-02-26
| | | | Just like be_new_Phi0() get the mode from the parameter 'req'.
* be: Remove the redundant parameter 'sp' from be_new_IncSP().Christoph Mallon2018-02-26
| | | | | It only needs the register class, not the specific stack pointer register. So simply get the register class from the parameter 'old_sp'.
* Rework target initialization and queryMatthias Braun2017-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | - Moves machine triple handling code form cparser into libfirm - Create new APIs to set the target and query information about it - Move backend_params into the new target API - Backends initialize ir_target instead of backend_params now - Add new API to get information about the target platform: - Mangle a name for the target platform (and remove compilerlib mangling callback) - Can query size and alignment of basic C types for the platform - Move some constant target information into arch_isa_if_t (we move it to target_info_t later when we realize it needs to be dynamic) - Redo backend initialization. Examples: Simple case: Initialize for host: ir_init(); Complex case: cross-compile to sparc with PIC enabled: ir_init_library(); ir_target_set("sparc-leon-linux-gnu"); ir_target_option("pic"); ir_target_init();
* Reorganize include directivesMatthias Braun2017-02-17
|
* irdump: Make some low-level functions public.Matthias Braun2016-12-27
| | | | | | | | The homepage uses those functions to generate firm graph examples/snippets without dumping a whole function. This is necessary to make the homepage generator not call private libfirm interface any longer.
* be: Add and use a generic backend node for unknown values.Christoph Mallon2016-11-28
|
* be: Factor out common code to handle switch tables.Christoph Mallon2016-11-28
|
* Remove be_node_attr_t typeMatthias Braun2016-11-08
| | | | | | It was used as a base for all be nodes and just contained an exc_pinned attribute. Remove the type and add the exc_pinned attribute to be_asm which is the only one with op_pin_state_exc_pinned.
* be: Give be_Relocations debug info.Christoph Mallon2016-10-15
|
* Use 'default_copy_attr()'.Christoph Mallon2016-10-06
|
* Fix typo in comment.Christoph Mallon2016-09-27
|
* be: Determine mode of new Phi0 from the given register requirement.Christoph Mallon2016-04-05
|
* be: Use be_dump_yesno().Christoph Mallon2016-04-05
|
* 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.
* be: Clean up 'be_new_Perm()'.Christoph Mallon2016-03-21
|
* be: Factorise code to create a register requirement.Christoph Mallon2016-03-21
|
* be: Move 'ignore' check into 'be_create_reg_req()'.Christoph Mallon2016-03-21
|
* be: Pass an 'irg' instead of an 'obst' to 'be_create_reg_req()'.Christoph Mallon2016-03-21
|
* be: Move 'be_create_reg_req()' from benode to bearch.Christoph Mallon2016-03-21
|
* be: Remove flag 'aligned' from register requirements.Christoph Mallon2016-03-21
| | | | | It is the default for width != 1 now. Work on this never was finished, so it probably does not work anyway.
* Do not optimize phi.Sebastian Buchwald2016-03-11
| | | | This fixes backend/spill_phi2.c.
* Cleanup code.Sebastian Buchwald2016-03-11
|
* be: Allow creation of Copy nodes with debug info.Christoph Mallon2016-03-01
|
* Use ir_printf("%F") instead of printf("%s",get_entity_name())Matthias Braun2016-02-29
|
* Enfore Add/Sub pointer, offset to use reference_offset_modeMatthias Braun2015-10-18
|
* be: Give the operand of be_IncSP a symbolic name.Christoph Mallon2015-09-08
|
* be: Pass the input requirements directly to the constructors of nodes, which ↵Christoph Mallon2015-09-08
| | | | have a variable number of arguments.
* be: Add and use be_new_Copy_before_reg().Christoph Mallon2015-08-29
|
* be: Add and use be_new_Proj_reg(), to create a Proj using the given register.Christoph Mallon2015-08-29
|
* be: Use one common function to copy the node attributes in the backend.Christoph Mallon2015-08-19
| | | | | All backends had identical implementations. Now rematerialization works out of the box for new backends.
* be: Correct and simplify copy_attr().Christoph Mallon2015-08-19
| | | | Now add_pressure[] is copied.
* Turn node pinned attribute into a booleanMatthias Braun2015-08-18
| | | | | | Avoid using the op_pin_state enum as that contains confusing additional entries that are not valid on a node. The only remaining state for a node is pinned/floating which we can simply represent with a 0/1 value.
* be: Reintroduce be_Start.Christoph Mallon2015-08-09
| | | | | All backends have similar empty Start nodes, which just provide registers. So having one generic backend Start node to share some infrastructure is sensible.
* be: Add and use be_get_or_make_Proj_for_pn().Christoph Mallon2015-08-07
|
* be: Remove duplicate dumps of register allocation information.Christoph Mallon2015-08-05
| | | | It is now done generically in dump_backend_info_hook().
* irverify: Remove the parameter 'irg' from verify_new_node().Christoph Mallon2015-07-28
|
* be: Add and use be_new_Proj().Christoph Mallon2015-07-28
| | | | | It is like new_r_Proj(), but the mode is determined automatically from the out requirement of the predecessor. This probably resolves some mode mismatches in untested code paths -- AMD64 backend and SPARC hard float, I'm looking at you!
* be: Introduce a constraint for memory outputs.Christoph Mallon2015-07-27
|
* be: Remove pointless null pointer checks.Christoph Mallon2015-07-27
| | | | Nodes without requirements are never operands of a {Copy,}Keep.
* be: Dump registers and requirements of all middle-end nodes, not just Phis.Christoph Mallon2015-07-27
|
* be: Only exclude ANY and T nodes from having their mode dumped.Christoph Mallon2015-07-27
|
* benode: Remove be_Any nodeMatthias Braun2015-07-23
|
* benode: Introduce be_Relocation nodeMatthias Braun2015-07-22
| | | | | This node will be used as a helper for PIC lowering passes which want to force a specific relocation getting used for an entities address.
* Remove unnecessary #include "debug.h".Christoph Mallon2015-07-19
|
* Remove unnecessary #include "besched.h".Christoph Mallon2015-07-17
|