summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bearch.c
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: Factor out parsing of register names for clobbers.Christoph Mallon2018-05-04
|
* 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
|
* 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: Assert that the register can be assigned to the given node in ↵Christoph Mallon2016-01-14
| | | | arch_set_irn_register{,_out}().
* adt: Add and use 'streq()'.Christoph Mallon2015-12-07
|
* 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'.
* be: Use get_out_info_n().Christoph Mallon2015-08-29
| | | | Now the pos for fetching an out info is checked in all cases.
* 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_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 execution outputs.Christoph Mallon2015-07-27
|
* be: Introduce a constraint for memory outputs.Christoph Mallon2015-07-27
|
* be: Give the none register requirement a register class.Christoph Mallon2015-07-27
| | | | | Now register requirements always have have a register class. This is more consistent and removes some null pointer checks.
* 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.
* 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.
* be: Do not explicitly pass an obstack to be_make_start_out().Christoph Mallon2015-06-26
| | | | Get the obstack from the given start node.
* 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
|
* 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
|
* 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: 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: Rename reg_class of struct arch_register_t to cls.Christoph Mallon2014-11-13
| | | | All other structs holding a register class call it cls, too.
* be: Remove arch_possible_memory_operand().Christoph Mallon2014-10-31
| | | | Just do the check in the corresponding implementation of arch_perform_memory_operand().
* move arch_dump functions to be_dumpMatthias Braun2014-10-18
|
* be: Factorise code to get the register Projs of the backend start nodes.Christoph Mallon2014-10-13
|
* bearch: update flags dumperMatthias Braun2014-10-07
|
* be: use designated initializer for regs, regclasses, reg_reqsMatthias Braun2014-09-09
|
* ia32: construct spill/reload directly instead of using be_Spill/be_ReloadMatthias Braun2014-03-28
| | | | | this also required a rewrite of the perform_memory_operand logic which should be cleaner now.
* Add and use foreach_irn_pred{,_r}().Christoph Mallon2014-02-17
|
* be: rename arch_irn_flags_XXX to arch_irn_flag_XXXMatthias Braun2013-08-08
| | | | | As they were just a single flag the name should reflect that. I did not change arch_irn_flags_none, as that is not about a single flag.
* do not include config.h anymoreMatthias Braun2013-05-04
| | | | | | It has been empty for nearly all systems. People who used to put stuff in config.h can still create a config.h on their own and inject -include (gcc) or /FI (msvc) into their CPPFLAGS.
* cleanup: Remove unnecessary #include <string.h>.Christoph Mallon2013-01-05
|
* be: Do not dump the input node, only the slot, for "should be same" and ↵Christoph Mallon2013-01-05
| | | | | | "must be different" constraints. The node in question is shown just a few lines above and repeating it here just clutters up the info box.
* be: Dump register assignments at the inputs of nodes.Christoph Mallon2013-01-05
|
* cleanup: Remove unnecessary #include.Christoph Mallon2012-12-21
|