summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bearch.h
Commit message (Collapse)AuthorAge
* beasm: Give label constraints the "register" class 'exec'.Christoph Mallon2019-04-05
|
* be: Add the typedef 'be_add_pressure_t' for additional register pressure.Christoph Mallon2019-03-19
|
* be: Factor out code to get an input pos for a given register requirement.Christoph Mallon2018-08-23
|
* be: Add mechanism for a architecture-specific name prefix for registers.Christoph Mallon2018-05-05
|
* be: Add a flag to allow registers of a class as input even if clobbered in ↵Christoph Mallon2018-05-04
| | | | | | an asm. So far exactly x87 on ia32 was hard-coded.
* be: Factor out parsing of register names for clobbers.Christoph Mallon2018-05-04
|
* be: Generalize set_irn_col() to arch_set_irn_register_idx() and use it ↵Christoph Mallon2018-03-03
| | | | | | elsewhere, too. There is no need to pass the register class as parameter, because the node knows the register class.
* 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();
* be: Consider 'width' in 'reg_reqs_equal()'.Christoph Mallon2016-03-28
|
* be: Factorise code to create a register requirement.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: Consider 'kills_value' in 'reg_reqs_equal()'.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.
* bejit: Introduce brand new jit infrastructureMatthias Braun2016-02-01
|
* be: Provide a default implementation for the hook 'is_valid_clobber()'.Christoph Mallon2015-12-07
| | | | | In particular remove the unnecessary 'sparc_is_valid_clobber()'. The wrapper 'be_is_valid_clobber()' already handles 'memory' and 'cc'.
* cleanup: Correct indentation.Christoph Mallon2015-09-25
|
* be: Use get_out_info_n().Christoph Mallon2015-08-29
| | | | Now the pos for fetching an out info is checked in all cases.
* bearch: Introduce kills_value constraint and use it for ia32_fisttpMatthias Braun2015-08-21
| | | | | | The kills value constraint indicated that the value in a register is modified after it is read. A copy is inserted if the value is still required after a kills_value use.
* 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: Introduce a constraint for execution outputs.Christoph Mallon2015-07-27
|
* be: Introduce a constraint for memory outputs.Christoph Mallon2015-07-27
|
* Add a way to specify additional register pressure for the first 4 register ↵Matthias Braun2015-07-23
| | | | | | classes I'm not proud of the 4 restriction but for now this works.
* be: Do not consider should_be_same in reg_req_has_constraint().Christoph Mallon2015-07-07
| | | | | This is not a hard constraint like the others and does not break the register allocation, if a Perm is pushed across the node with should_be_same. This restores the behavior before the register constraint reorganization and removes lots of xchgs in the testsuite again.
* doc: Correct typo in comment.Christoph Mallon2015-07-01
|
* bearch: Use bool:1 instead of a bitset for remainin reg_req typesMatthias Braun2015-07-01
|
* bearch: rework must_be_different constraintMatthias Braun2015-07-01
| | | | | | - Rename other_different field to must_be_different - Remove arch_register_req_type_must_be_different, it's enough to see if the must_be_different field is not zero.
* bearch: rework should_be_same constraintMatthias Braun2015-07-01
| | | | | | - Rename other_same field to should_be_same. - Remove arch_register_req_type_other_same, it's enough to see if the should_be_same field is not zero.
* 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.
* be: Do not explicitly pass an obstack to be_make_start_out().Christoph Mallon2015-06-26
| | | | Get the obstack from the given start node.
* Reorder arch_register_req_type numbersMatthias Braun2015-06-19
|
* remove arch_register_req_type_limited, look whether the limited pointer is ↵Matthias Braun2015-06-19
| | | | != NULL instead
* remove arch_register_type_t in favor of a simple bitfieldMatthias Braun2015-06-19
|
* get rid of arch_register_flags_t enum in favor of a simple bitfieldMatthias Braun2015-06-19
|
* move op_estimated_cost callback to isa_if; remove arch_irn_opsMatthias Braun2015-06-19
|
* move perform_memory_operand callbcack from arch_irn_ops to regalloc_ifMatthias Braun2015-06-19
|
* break arch_isa_if_t furhter apart by moving spilling related callbacks into ↵Matthias Braun2015-06-19
| | | | an own struct
* be: Move main backend loop into backends.Matthias Braun2015-05-24
| | | | | | | | | | | | | | Instead of having a generaic main loop in be_main with several callbacks into the targets, split the code in be_main up into a set of convenience functions and let the targets implement the main loop itself. This is nicer because: - The control flow into and out of the functions in the target becomes obvious as no external party is using callbacks anymore. - Targets can insert custom code at any place between the generic passes. - In the future we can parameterize the generic backend passes directly instead of stuffing info into generic isa_if structures.
* be: Remove struct arch_env_t.Christoph Mallon2015-01-18
|
* be: Move spill_cost and reload_cost from struct arch_env_t into struct ↵Christoph Mallon2015-01-18
| | | | | | arch_isa_if_t. This removes the last attributes from struct arch_env_t.
* be: Move the info about the register classes and registers struct the ↵Christoph Mallon2015-01-18
| | | | arch_env_t into struct arch_isa_if_t.
* be: Remove the pointer to the isa interface from the arch env.Christoph Mallon2015-01-18
| | | | Just use the selected isa interface directly.
* 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.
* bearch: introduce arch_find_register()Matthias Braun2014-12-29
|
* be: Provide an inline implementation of arch_add_irn_flags().Christoph Mallon2014-12-28
|
* be: Remove arch_set_irn_flags().Christoph Mallon2014-12-28
| | | | | The only user should be an arch_add_irn_flags() instead. It was harmless though, because no other flags were set.
* be: Remove arch_register_req_type_normal.Christoph Mallon2014-12-04
| | | | This flag is plain redundant.
* remove arch_get_frame_entity()Matthias Braun2014-11-25
| | | | Add callbacks on functions that really need them instead.
* change get_sp_bias and set_frame_offset to be callbacks for ↵Matthias Braun2014-11-22
| | | | be_abi_fix_stack_bias
* be: Remove the attribute sp from struct arch_env_t.Christoph Mallon2014-11-13
|