[LLVMbugs] [Bug 24185] LICM incorrectly hoists load because Instruction::mayThrow does not correctly handle invokes

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jul 20 09:49:40 PDT 2015


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

Sanjoy Das <sanjoy at playingwithpointers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |rnk at google.com
         Resolution|INVALID                     |---

--- Comment #3 from Sanjoy Das <sanjoy at playingwithpointers.com> ---
After reading http://llvm.org/docs/ExceptionHandling.html, I think this bug
merits re-opening.  The doc says:

 * catch <type> @ExcType

  * This clause means that the landingpad block should be entered if the
exception being thrown is of type @ExcType or a subtype of @ExcType. For C++,
@ExcType is a pointer to the std::type_info object (an RTTI object)
representing the C++ exception type.
  * If @ExcType is null, any exception matches, so the landingpad should always
be entered. This is used for C++ catch-all blocks (“catch (...)”).

 * When this clause is matched, the selector value will be equal to the value
returned by “@llvm.eh.typeid.for(i8* @ExcType)”. This will always be a positive
value.

The doc does not say that landing pads execute for every thrown exception.  I
could not find anything that says landingpads execute for any exception in the
Itanium EH ABI either.

-- 
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/20150720/39e82c40/attachment.html>


More information about the llvm-bugs mailing list