[llvm-bugs] [Bug 43298] New: Function called at the end of multiple paths results in different x86_64 assembly than equivalent call after all paths have completed

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Sep 12 12:41:56 PDT 2019


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

            Bug ID: 43298
           Summary: Function called at the end of multiple paths results
                    in different x86_64 assembly than equivalent call
                    after all paths have completed
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: jmunxsys at yahoo.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

Created attachment 22490
  --> https://bugs.llvm.org/attachment.cgi?id=22490&action=edit
Code that exhibits the issue

https://godbolt.org/z/37Leg_

Clang trunk (371698) is able to reduce "munge" to the same code as "munge2". 
(BTW all versions of gcc, icc, and older clang versions could not.)

However, "munge1" and "munge3" get a slightly longer version that loads and
stores to/from a register instead of using immediates.  As best I can tell
these are all represent equivalent functions and should have the same ASM
representation for a given optimization level.

-- 
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/20190912/c80672bf/attachment.html>


More information about the llvm-bugs mailing list