summaryrefslogtreecommitdiffhomepage
path: root/ir/be/benode.h
Commit message (Collapse)AuthorAge
* be, ir: Give be_Asm and ASM a fallthrough exec output.Christoph Mallon2019-04-05
|
* be, ir: For consistency memory now is the first output of ASM and be_Asm.Christoph Mallon2018-05-28
|
* be: For consistency make memory the first input of be_Asm.Christoph Mallon2018-05-28
|
* 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'.
* 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
|
* be: Determine mode of new Phi0 from the given register requirement.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: Move 'be_create_reg_req()' from benode to bearch.Christoph Mallon2016-03-21
|
* be: Allow creation of Copy nodes with debug info.Christoph Mallon2016-03-01
|
* 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: 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: 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: Dump registers and requirements of all middle-end nodes, not just Phis.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 "bearch.h".Christoph Mallon2015-07-19
|
* bearch: Use bool:1 instead of a bitset for remainin reg_req typesMatthias Braun2015-07-01
|
* be: Add and use be_allocate_in_reqs().Christoph Mallon2015-06-26
|
* move op_estimated_cost callback to isa_if; remove arch_irn_opsMatthias Braun2015-06-19
|
* be: Introduce a generic be_Asm node.Christoph Mallon2015-06-05
|
* be: Add the function arch_copy_irn_out_info() to copy one requirement and ↵Christoph Mallon2015-01-11
| | | | | | | register from another node. * This avoids allocating new requirements. * This renders be_set_constr_single_reg_out() obsolete.
* benode: Add be_new_Phi0() and be_complete_Phi().Christoph Mallon2015-01-10
|
* belower: Remove be_Perm_reduce() and rewrite it at its only user.Christoph Mallon2015-01-08
| | | | | Now the number of outputs is adjusted, too. This did not cause any problems, because the Perm is lowered right afterwards.
* cleanup: Remove unnecessary #include.Christoph Mallon2014-12-31
|
* cleanup: Correct macro names of include guards.Christoph Mallon2014-12-31
|
* be: Inline be_new_CopyKeep_single() into its only caller.Christoph Mallon2014-12-30
|
* be: Remove the unused function be_set_CopyKeep_op().Christoph Mallon2014-12-30
|
* be: Use one common be_null_ops instead of one per backend.Christoph Mallon2014-12-29
|
* be: be_Keep does not need to be dynamic anymore.Christoph Mallon2014-12-29
| | | | All users construct their Keeps in one go.
* be: Add and use be_new_Keep_one() to keep a single node.Christoph Mallon2014-12-29
|
* be: Remove get_be_irn_opcode().Christoph Mallon2014-12-29
| | | | It was only used in one place, where it is easily replaced.
* benode: introduce be_AnyVal.Matthias Braun2014-12-29
| | | | | | This replaces ia32_ProduceVal/arm_EmptyReg. You should avoid using this node in general, but there are some cases where you need it to fixup nodes that are not register pressure faithful.
* benode: cleanupMatthias Braun2014-12-29
|
* ir: Use ARRAY_SIZE() instead of magic numbers.Christoph Mallon2014-12-28
|
* be: Make be_set_constr_in() static.Christoph Mallon2014-11-17
|
* API change+fix for IncSP alignmentMatthias Braun2014-10-07
| | | | | | | | - alignment is set on each single IncSP now instead of a global arch_env setting - fixed ia32 not requesting any alignment anymore (even on darwin where we need it) - fixed amd64 creating IncSP nodes without flag_modifies_flags set
* be: remove be_Start,be_Return,be_Call,be_AddSP,be_SubSP nodesMatthias Braun2014-10-02
|
* rename proj attribute from Proj to num and change type to unsignedMatthias Braun2014-09-17
|
* benode: cleanup, use C99Matthias Braun2014-09-15
|