RE: [AD] Optimization flags? |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
- To: <alleg-developers@xxxxxxxxxx>
- Subject: RE: [AD] Optimization flags?
- From: "Robert Ohannessian" <ROhannessian@xxxxxxxxxx>
- Date: Mon, 25 Oct 2004 13:49:52 -0700
- Thread-index: AcS6lVsciR9g9AHrQ9eBDA84Bta5UQAPo39Q
- Thread-topic: [AD] Optimization flags?
> -frename-registers
> Attempt to avoid false dependencies in scheduled code by making
> use of registers left over after register allocation. This
> optimization will most benefit processors with lots of registers. It
> can, however, make debugging impossible, since variables will no
> longer stay in a "home register".
This likely won't help the x86. 7 does not count as "lots of registers".
> -finline-functions
> Integrate all simple functions into their callers. The compiler
> heuristically decides which functions are simple enough to be worth
> integrating in this way.
Allegro was benchmarked a while ago with this option. It turned out
slower and bigger than without it.
> -funswitch-loops
> Move branches with loop invariant conditions out of the loop, with
> duplicates of the loop on both branches (modified according to result
> of the condition).
This isn't a default option, implied by -O2?
> -fbranch-target-load-optimize
> Perform branch target register load optimization before prologue /
> epilogue threading. The use of target registers can typically be
> exposed only during reload, thus hoisting loads out of loops and doing
> inter-block scheduling needs a separate optimization pass.
>
> -fbranch-target-load-optimize2
> Perform branch target register load optimization after prologue /
> epilogue threading.
Those won't help the x86: Branch targets are inlined.
> -fweb
> Constructs webs as commonly used for register allocation purposes
> and assign each web individual pseudo register. This allows the
> register allocation pass to operate on pseudos directly, but also
> strengthens several other optimization passes, such as CSE, loop
> optimizer and trivial dead code remover. It can, however, make
> debugging impossible, since variables will no longer stay in a "home
> register".
This one is new to me. Dunno if it'll help to turn it on.