Prefer get_mode_null() over get_tarval_null().
[libfirm] / ir / be / ia32 / ia32_common_transform.h
index 8c1b62c..94a49a2 100644 (file)
@@ -45,6 +45,7 @@ struct constraint_t {
 
 extern ia32_code_gen_t *env_cg;
 extern heights_t *heights;
+extern int        no_pic_adjust;
 
 /**
  * Get an atomic entity that is initialized with a tarval forming
@@ -61,7 +62,7 @@ ir_entity *create_float_const_entity(ir_node *cnst);
  * @param symconst_sign  sign for the symconst
  * @param val            integer value for the immediate
  */
-ir_node *create_Immediate(ir_entity *symconst, int symconst_sign, long val);
+ir_node *ia32_create_Immediate(ir_entity *symconst, int symconst_sign, long val);
 
 /**
  * returns register by name (used for determining clobber specifications in
@@ -69,13 +70,6 @@ ir_node *create_Immediate(ir_entity *symconst, int symconst_sign, long val);
  */
 const arch_register_t *ia32_get_clobber_register(const char *clobber);
 
-#ifndef NDEBUG
-/**
- * Prints the old node name on cg obst and returns a pointer to it.
- */
-const char *ia32_get_old_node_name(ia32_code_gen_t *cg, ir_node *irn);
-#endif /* NDEBUG */
-
 /**
  * Return true if a mode can be stored in the GP register set.
  */
@@ -91,7 +85,12 @@ ir_node *gen_ASM(ir_node *node);
  *
  * @return The transformed node.
  */
-ir_node *gen_CopyB(ir_node *node) ;
+ir_node *gen_CopyB(ir_node *node);
+
+/**
+ * Transform the Thread Local Storage Proj.
+ */
+ir_node *gen_Proj_tls(ir_node *node);
 
 /**
  * This function just sets the register for the Unknown node
@@ -105,6 +104,20 @@ const arch_register_req_t *make_register_req(const constraint_t *constraint,
 
 const arch_register_req_t *parse_clobber(const char *clobber);
 
+/**
+ * Checks whether other node inputs depend on the am_candidate (via mem-proj).
+ */
+int prevents_AM(ir_node *const block, ir_node *const am_candidate,
+                       ir_node *const other);
+
 ir_node *try_create_Immediate(ir_node *node, char immediate_constraint_type);
 
+/**
+ * creates a unique ident by adding a number to a tag
+ *
+ * @param tag   the tag string, must contain a %d if a number
+ *              should be added
+ */
+ident *ia32_unique_id(const char *tag);
+
 #endif /* FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H */