summaryrefslogtreecommitdiffhomepage
path: root/ir/be/beirg.h
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-06-30 07:45:20 +0200
committerMatthias Braun <matze@braunis.de>2015-07-01 07:40:03 +0200
commit58b0168a2361d25b641eb0d5b8382ee75173b562 (patch)
tree43fef69b15422f14897d30f795ec4a0c8cf6c2f9 /ir/be/beirg.h
parenta315f5e99a2d1a50387a260d969d58f10ee6580e (diff)
Remove produces_sp register constraint
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.
Diffstat (limited to 'ir/be/beirg.h')
-rw-r--r--ir/be/beirg.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/ir/be/beirg.h b/ir/be/beirg.h
index 7951d45..bbcf9b6 100644
--- a/ir/be/beirg.h
+++ b/ir/be/beirg.h
@@ -70,6 +70,10 @@ typedef struct be_irg_t {
be_stack_layout_t stack_layout;
/** bitset of registers available for the allocator */
unsigned *allocatable_regs;
+ /** bitset of registers for which verification errors are not reported.
+ * A typical use is for the stackpointer for which SSA form is only built
+ * once late in the compilation. May be NULL. */
+ const unsigned *non_ssa_regs;
/** obstack (mainly used to keep register constraints which we can't keep
* in the irg obst, because it gets replaced during code selection) */
struct obstack obst;