[LLVMbugs] [Bug 23827] bad generated code for conditionals connected by (&)

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jun 26 01:30:54 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=23827

Chandler Carruth <chandlerc at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |chandlerc at gmail.com
         Resolution|---                         |INVALID

--- Comment #4 from Chandler Carruth <chandlerc at gmail.com> ---
Fisnik, on what processor and with what benchmark do you measure the problem
with 'amp's generated code? Why is the branch misprediction penalty very high
there? I don't really understand that at all.

Fundamentally, I disbelieve that these should ever be compiled differently.
They are identical code sequences functionally, and we should generate an
identical sequence of instructions.


Also, note that all versions of GCC also generate two jumps in both test cases.
ICC is the only one that generates different code, and the code sequence it
generates for 'amp' seems absurdly worse than what Clang and GCC do for both
test cases and what ICC itself odes for 'ampamp'.


Finally, do note that with Clang's output you have prolog/epilog idiocy in the
code that has nothing to do with the testcase. AFAICT, other than that
silliness, Clang, GCC, and ICC for 'ampamp' all agree, and I think that code is
the best code.


Please re-open with measurements and details about what you think is going
wrong here if there is an actual performance problem.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150626/7d19cad3/attachment.html>


More information about the llvm-bugs mailing list