1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/lib
Adrian Prantl 3eb19e0717 Don't emit CFI instructions at the end of a function
When functions are terminated by unreachable instructions, the last
instruction might trigger a CFI instruction to be generated. However,
emitting it would be be illegal since the function (and thus the FDE
the CFI is in) has already ended with the previous instruction.

Darwin's dwarfdump --verify --eh-frame complains about this and the
specification supports this.
Relevant bits from the DWARF 5 standard (6.4 Call Frame Information):

"[The] address_range [field in an FDE]: The number of bytes of
 program instructions described by this entry."

"Row creation instructions: [...]
 The new location value is always greater than the current one."
The first quotation implies that a CFI cannot describe a target
address outside of the enclosing FDE's range.

rdar://problem/26244988

Differential Revision: https://reviews.llvm.org/D32246

llvm-svn: 301219
2017-04-24 18:45:59 +00:00
..
Analysis [InstSimplify] move (A & ~B) | (A ^ B) -> (A ^ B) from InstCombine 2017-04-24 18:24:36 +00:00
AsmParser Prefer addAttr(Attribute::AttrKind) over the AttributeList overload 2017-04-19 17:28:52 +00:00
Bitcode PR32382: Fix emitting complex DWARF expressions. 2017-04-18 01:21:53 +00:00
CodeGen Don't emit CFI instructions at the end of a function 2017-04-24 18:45:59 +00:00
DebugInfo [llvm-pdbdump] Re-write the record layout code to be more resilient. 2017-04-24 17:47:24 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine Revert "[APInt] Fix a few places that use APInt::getRawData to operate within the normal API." 2017-04-23 12:15:30 +00:00
Fuzzer Fixup for r301054: Use an explicit constructor. 2017-04-21 23:28:01 +00:00
IR [AsmWriter] Eliminate warning. NFC 2017-04-21 06:14:38 +00:00
IRReader
LibDriver Fix some ArgList uses after API change in r300135. 2017-04-12 23:43:58 +00:00
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
LTO Object, LTO: Add target triple to irsymtab and LTO API. 2017-04-14 02:55:06 +00:00
MC Distinguish between code pointer size and DataLayout::getPointerSize() in DWARF info generation 2017-04-17 17:41:25 +00:00
Object [Object] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-04-21 22:03:05 +00:00
ObjectYAML Add virtual destructor to WasmYAML::Section or avoid memory leak 2017-03-31 22:14:14 +00:00
Option ArgList: cache index ranges containing arguments with each ID 2017-04-12 23:19:51 +00:00
Passes MemorySSA: Move to Analysis, from Transforms/Utils. It's used as 2017-04-11 20:06:36 +00:00
ProfileData [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
Support [APInt] Simplify the zext and sext methods 2017-04-24 17:37:10 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target CodeGen: Add a hook for getFenceOperandTy 2017-04-24 18:26:27 +00:00
Transforms Revert "Compute safety information in a much finer granularity." 2017-04-24 18:25:07 +00:00
XRay [XRay] - Fix spelling error to test commit access. 2017-04-06 03:32:01 +00:00
CMakeLists.txt
LLVMBuild.txt