[llvm-commits] [llvm] r173342 - in /llvm/trunk: lib/Transforms/Utils/SimplifyCFG.cpp test/Transforms/SimplifyCFG/SpeculativeExec.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Jan 25 14:14:57 PST 2013


On Jan 25, 2013, at 12:00 PM, Chandler Carruth <chandlerc at gmail.com> wrote:

> Because, much to my regret, early if-conversion isn't enabled on x86, so we don't end up fixing this later.

You seem very eager to have your ifs converted, and the early if-conversion pass is pretty much good to go.

This is my todo-list for enabling it on x86:

1. Verify that the MCSchedModel for x86 cpus looks reasonable. We probably don't need a fine-grained model with per-instruction latencies. The MCSchedModel allows a coarse classification:

- Integer instrs 1 cycle,
- Loads 4 cycles,
- High latency instrs 3 cycles (for floating point).

The IssueWidth should probably be set at 3 or 4.

2. Run some benchmarks to identify regressions. Perhaps tweak settings like the misprediction penalty.

MultiSource/Benchmarks/FreeBench/fourinarow was a massive regression last time I tested it because the float <-> int conversion instructions weren't marked as high latency at the time.

3. Check for increased spilling on x86 (32-bit). Perhaps only enable if-conversion for x86-64 if it is too hard on register pressure.

Have at it!

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130125/484d369e/attachment.html>


More information about the llvm-commits mailing list