Remove the unused parameter const arch_env_t *arch_env from be_set_phi_flags().
[libfirm] / ir / be / ia32 / ia32_architecture.h
index ba2277f..89fb4ad 100644 (file)
@@ -27,6 +27,8 @@
 #define FIRM_BE_IA32_ARCHITECTURE_H
 
 typedef struct {
+       /** optimize for size */
+       unsigned optimize_size:1;
        /** use leave in function epilogue */
        unsigned use_leave:1;
        /** use inc, dec instead of add ,1 and add, -1 */
@@ -45,6 +47,8 @@ typedef struct {
        unsigned use_fucomi:1;
        /** use cmovXX instructions */
        unsigned use_cmov:1;
+       /** mode_D moves instead of 2 integer moves */
+       unsigned use_modeD_moves:1;
        /** use add esp, 4 instead of pop */
        unsigned use_add_esp_4:1;
        /** use add esp, 8 instead of 2 pop's */
@@ -53,6 +57,19 @@ typedef struct {
        unsigned use_sub_esp_4:1;
        /** use sub esp, 8 instead of 2 push's */
        unsigned use_sub_esp_8:1;
+       /** use imul mem, imm32 instruction (slow on some cpu's */
+       unsigned use_imul_mem_imm32:1;
+       /** use pxor instead xorps/xorpd */
+       unsigned use_pxor:1;
+       /** use mov reg, 0 instruction */
+       unsigned use_mov_0:1;
+       /** pad Ret instructions that are destination of conditional jump or directly preceded
+           by other jump instruction. */
+       unsigned use_pad_return:1;
+       /** use the bt instruction */
+       unsigned use_bt:1;
+       /** use fisttp instruction (requieres SSE3) */
+       unsigned use_fisttp:1;
        /** optimize calling convention where possible */
        unsigned optimize_cc:1;
        /**
@@ -65,8 +82,10 @@ typedef struct {
        unsigned function_alignment;
        /** alignment for labels (which are expected to be frequent jump targets) */
        unsigned label_alignment;
+       /** maximum skip alignment for labels (which are expected to be frequent jump targets) */
+       unsigned label_alignment_max_skip;
        /** if a blocks execfreq is factor higher than it's predecessor then align
-        *  the blocks label (0 switches of label alignment) */
+        *  the blocks label (0 switches off label alignment) */
        double label_alignment_factor;
 } ia32_code_gen_config_t;