[LLVMdev] RFC: Constant Hoisting
Chris Sears
chris.sears at gmail.com
Tue Feb 3 10:20:32 PST 2015
I was using this GCC compiler comparison site. It's well done but
unfortunately it's not up to date. The author Matt Godbolt said he was
updating it:
http://gcc.godbolt.org/#
No, I do not have 3.4.1 but 3.5 is the current XCode release. It's pretty
much already narrowed.
3.4.1 generates correct assembly (except bug #2 is here as well, see below)
3.5 (XCode) generates correct IR and bad assembly
So the problem seems to show up with 3.5. The attached IR is from 3.5 XCode
clang -S -O3 -emit-llvm newtst.c.
There are TWO bugs here. There's the Constant Hoisting bug (#1) and the
failure to match a AND/CMP (#2). My current theory for #1 is
that Constant Hoisting for the X86 is relatively recent or that Costing
changed and that what we're seeing is that it worked correctly before. I
think my proposed patch is correct and I'd recommend the ARM folks look at
it.
I have no theory for bug #2 and I've already spent a day on it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150203/93f91cac/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: newtst.ll
Type: application/octet-stream
Size: 2674 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150203/93f91cac/attachment.obj>
More information about the llvm-dev
mailing list