llvm-project/llvm/lib/IR
Joseph Tremoulet 0d808888c1 [WinEH] Simplify unreachable catchpads
Summary:
At least for CoreCLR, a catchpad which immediately executes an
`unreachable` instruction indicates that the exception can never have a
matching type, and so such catchpads can be removed, and so can their
catchswitches if the catchswitch becomes empty.

Reviewers: rnk, andrew.w.kaylor, majnemer

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D15846

llvm-svn: 256809
2016-01-05 02:37:41 +00:00
..
AsmWriter.cpp Implemented Support of IA interrupt and exception handlers: 2015-12-21 14:07:14 +00:00
AttributeImpl.h llvm/lib/IR/AttributeImpl.h: Move comment block not to cover typedef, introduced in r244164. [-Wdocumentation] 2015-08-06 09:49:17 +00:00
Attributes.cpp Use std::is_sorted and std::none_of instead of manual loops. NFC 2016-01-03 19:43:40 +00:00
AttributesCompatFunc.td Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
AutoUpgrade.cpp Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
BasicBlock.cpp IR: Remove implicit iterator conversions from lib/IR, NFC 2015-10-08 23:49:46 +00:00
CMakeLists.txt [ptr-traits] Merge the MetadataTracking helpers into the Metadata 2015-12-29 02:14:50 +00:00
Comdat.cpp
ConstantFold.cpp Use CmpInst::Predicate instead of 'unsigned short' in some places. NFC 2015-12-15 06:11:33 +00:00
ConstantFold.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantRange.cpp [IR] Add a `makeNoWrapRegion` method to `ConstantRange` 2015-10-22 03:12:57 +00:00
Constants.cpp [IR] Add classof for GetElementPtrConstantExpr, CompareConstantExpr, InsertValueConstantExpr, and ExtractValueConstantExpr. All but CompareConstantExpr were being used in casts that were erroneously using ConstantExpr::classof due to inheritance. While there use cast<CompareConstantExpr> to simplify code slightly. 2015-12-15 06:11:36 +00:00
ConstantsContext.h [IR] Add classof for GetElementPtrConstantExpr, CompareConstantExpr, InsertValueConstantExpr, and ExtractValueConstantExpr. All but CompareConstantExpr were being used in casts that were erroneously using ConstantExpr::classof due to inheritance. While there use cast<CompareConstantExpr> to simplify code slightly. 2015-12-15 06:11:36 +00:00
Core.cpp IR: Remove implicit iterator conversions from lib/IR, NFC 2015-10-08 23:49:46 +00:00
DIBuilder.cpp Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
DataLayout.cpp Instcombine: destructor loads of structs that do not contains padding 2015-12-15 01:44:07 +00:00
DebugInfo.cpp DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DebugInfoMetadata.cpp Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
DebugLoc.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DiagnosticInfo.cpp [PGO] Resubmit "MST based PGO instrumentation infrastructure" (r254021) 2015-12-09 18:08:16 +00:00
DiagnosticPrinter.cpp MIR Serialization: Connect the machine function analysis pass to the MIR parser. 2015-06-15 20:30:22 +00:00
Dominators.cpp [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
Function.cpp [Function] Properly remove use when clearing personality 2015-12-23 18:27:23 +00:00
FunctionInfo.cpp [ThinLTO] Handle bitcode without function summary sections gracefully 2015-11-21 21:55:48 +00:00
GCOV.cpp Rename one of our two llvm::GCOVOptions classes to llvm::GCOV::Options. We used 2015-10-14 00:04:19 +00:00
GVMaterializer.cpp
Globals.cpp Drop support for dematerializing. 2015-12-18 19:57:26 +00:00
IRBuilder.cpp Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
IRPrintingPasses.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InlineAsm.cpp Fix SEGV in InlineAsm::ConstraintInfo::Parse. 2015-09-03 15:41:37 +00:00
Instruction.cpp Teach haveSameSpecialState about operand bundles 2015-12-14 19:11:35 +00:00
Instructions.cpp [WinEH] Simplify unreachable catchpads 2016-01-05 02:37:41 +00:00
IntrinsicInst.cpp IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
LLVMBuild.txt
LLVMContext.cpp [WinEH] Use operand bundles to describe call sites 2015-12-15 21:27:27 +00:00
LLVMContextImpl.cpp [IR] Manage TheNoneToken with a std::unique_ptr 2015-11-16 20:55:57 +00:00
LLVMContextImpl.h Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
LegacyPassManager.cpp Remove debug output that snuck into 254957 2015-12-07 22:43:56 +00:00
MDBuilder.cpp [MDBuilder] Simplify code using initializer lists. NFC. 2015-11-22 18:03:17 +00:00
Makefile Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
Mangler.cpp Remove unused arguments and move ManglerPrefixTy to the implementation. 2015-06-23 14:11:09 +00:00
Metadata.cpp [ThinLTO] Rename variables used in metadata linking (NFC) 2015-12-30 21:13:55 +00:00
MetadataImpl.h DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
Module.cpp Assert that we have all use/users in the getters. 2015-12-19 20:03:23 +00:00
Operator.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Pass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassManager.cpp [PM] Push the debug option for the new pass manager into the opt tool 2015-01-13 22:42:38 +00:00
PassRegistry.cpp Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
Statepoint.cpp Remove deprecated llvm.experimental.gc.result.{int,float,ptr} intrinsics. 2015-12-22 18:44:45 +00:00
SymbolTableListTraitsImpl.h IR: Remove implicit iterator conversions from lib/IR, NFC 2015-10-08 23:49:46 +00:00
Type.cpp [IR] Mark the Type subclass helper methods 'inline' and move their definitions to DerivedTypes.h so they can be inlined by the compiler. 2015-12-25 04:06:20 +00:00
TypeFinder.cpp Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
Use.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
User.cpp [IR] Teach `llvm::User` to co-allocate a descriptor. 2015-09-24 01:00:49 +00:00
Value.cpp Assert that we have all use/users in the getters. 2015-12-19 20:03:23 +00:00
ValueSymbolTable.cpp Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
ValueTypes.cpp Add new vector types for 512-, 1024- and 2048-bit vectors 2015-11-24 13:07:35 +00:00
Verifier.cpp [Verifier] Add braces to satisfy buildbots. NFC 2016-01-02 15:50:34 +00:00
module.modulemap