diff options
Diffstat (limited to 'driver/Driver.ml')
-rw-r--r-- | driver/Driver.ml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml index 3f5a4bd9..83671d90 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -208,6 +208,11 @@ Processing options: -fmove-loop-invariants Perform loop-invariant code motion [off] -fredundancy Perform redundancy elimination [on] -mtune= Type of CPU (for scheduling on some architectures) + -fpoor-mans-ssa Perform some register renaming before potential prepass scheduling [on] + -flift-if Allow the duplication and therefore removal or downwards scheduling of code in superblocks, the number will eventually be useed to control the increase in code size. Right any number >= 0 is interpreted as true. [0] + -fprepass-past-side-exits Allow the scheduling of live instructions past side exits by duplicating code [off] + -fprepass-past-side_exits= <heuristic> Allow moving store instructions past side exits (move_stores) or not (no_move_stores) [move_stores] + -ftarget-inner-loops Concerns -fpoor-mans-ssa and -fprepass-past-side-exits: only apply the aforementioned optimizations to inner loops spanned by a superblock. -fprepass Perform prepass scheduling (only on some architectures) [on] -fprepass= <optim> Perform postpass scheduling with the specified optimization [list] (<optim>=list: list scheduling, <optim>=revlist: reverse list scheduling, <optim>=regpres: list scheduling aware of register pressure, <optim>=regpres_bis: variant of regpres, <optim>=zigzag: zigzag scheduling, <optim>=ilp: ILP, <optim>=greedy: just packing bundles) @@ -426,6 +431,8 @@ let cmdline_actions = @ f_opt "move-loop-invariants" option_fmove_loop_invariants @ f_opt "redundancy" option_fredundancy @ [ Exact "-mtune", String (fun s -> option_mtune := s) ] + @ f_opt "poor-mans-ssa" option_fpoormansssa + @ f_opt "target-inner-loops" option_ftargetinnerloops @ f_opt "prepass" option_fprepass @ f_opt "regpres-wait-window" option_regpres_wait_window @ f_opt "postpass" option_fpostpass @@ -434,6 +441,9 @@ let cmdline_actions = @ [ Exact "-funrollsingle", Integer (fun n -> option_funrollsingle := n) ] @ [ Exact "-funrollbody", Integer (fun n -> option_funrollbody := n) ] @ [ Exact "-flooprotate", Integer (fun n -> option_flooprotate := n) ] + @ [ Exact "-flift-if", Integer (fun n -> option_fliftif := n) ] + @ f_opt "prepass-past-side-exits" option_prepass_past_side_exits + @ f_opt_str "prepass-past-side-exits" "move_stores" option_prepass_past_side_exits option_prepass_past_side_exits_sched @ f_opt "tracelinearize" option_ftracelinearize @ f_opt_str "prepass" "regpress" option_fprepass option_fprepass_sched @ f_opt_str "postpass" "list" option_fpostpass option_fpostpass_sched |