llvm-project/llvm/test/Transforms/GlobalOpt
Fangrui Song 6e679f8ba5 [GlobalOpt] Simplify __cxa_atexit elimination
cxxDtorIsEmpty checks callers recursively to determine if the
__cxa_atexit-registered function is empty, and eliminates the
__cxa_atexit call accordingly.

This recursive check is unnecessary as redundant instructions and
function calls can be removed by early-cse and inliner. In addition,
cxxDtorIsEmpty does not mark visited function and it may visit a
function exponential times (multiplication principle).

llvm-svn: 353603
2019-02-09 09:18:37 +00:00
..
PowerPC Re-commit : [PowerPC] Add handling for ColdCC calling convention and a pass to mark 2018-01-30 16:17:22 +00:00
2004-10-10-CastStoreOnce.ll
2005-06-15-LocalizeConstExprCrash.ll
2005-09-27-Crash.ll
2006-07-07-InlineAsmCrash.ll
2006-11-01-ShrinkGlobalPhiCrash.ll
2007-04-05-Crash.ll
2007-05-13-Crash.ll
2007-06-04-PackedStruct.ll
2007-11-09-GEP-GEP-Crash.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
2008-01-03-Crash.ll
2008-01-13-OutOfRangeSROA.ll
2008-01-29-VolatileGlobal.ll
2008-04-26-SROA-Global-Align.ll
2008-07-17-addrspace.ll
2008-12-16-HeapSRACrash-2.ll
2008-12-16-HeapSRACrash.ll
2009-01-13-phi-user.ll
2009-02-15-BitcastAlias.ll
2009-02-15-ResolveAlias.ll
2009-03-05-dbg.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
2009-03-06-Anonymous.ll
2009-03-07-PromotePtrToBool.ll
2009-06-01-RecursivePHI.ll
2009-11-16-BrokenPerformHeapAllocSRoA.ll
2009-11-16-MallocSingleStoreToGlobalVar.ll
2010-02-25-MallocPromote.ll
2010-02-26-MallocSROA.ll
2010-10-19-WeakOdr.ll
2011-04-09-EmptyGlobalCtors.ll
2012-05-11-blockaddress.ll
GSROA-section.ll
MallocSROA-section-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
MallocSROA-section.ll
SROA-section.ll
alias-resolve.ll
alias-used-address-space.ll
alias-used-section.ll
alias-used.ll
amdgcn-ctor-alloca.ll Fix evaluator for non-zero alloca addr space 2018-05-19 02:58:16 +00:00
array-elem-refs.ll
assume.ll
atexit.ll
atomic.ll
available_externally_global_ctors.ll
basictest.ll
blockaddress.ll
cleanup-pointer-root-users.ll
coldcc_stress_test.ll Re-commit : [PowerPC] Add handling for ColdCC calling convention and a pass to mark 2018-01-30 16:17:22 +00:00
compiler-used.ll
constantexpr-dangle.ll
constantfold-initializers.ll
crash-2.ll
crash.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
ctor-list-opt-constexpr.ll
ctor-list-opt-inbounds.ll
ctor-list-opt.ll
cxx-dtor.ll [GlobalOpt] Simplify __cxa_atexit elimination 2019-02-09 09:18:37 +00:00
deaddeclaration.ll
deadfunction.ll
deadglobal-2.ll
deadglobal.ll
evaluate-bitcast.ll [Evaluator] Evaluate load/store with bitcast 2018-03-13 10:19:50 +00:00
evaluate-call-errors.ll [Evaluator] Improve evaluation of call instruction 2018-07-01 11:02:07 +00:00
evaluate-call.ll [Evaluator] Examine alias when evaluating function call 2018-07-10 16:34:23 +00:00
evaluate-constfold-call.ll [Evaluator] Improve evaluation of call instruction 2018-07-01 11:02:07 +00:00
externally-initialized-aggregate.ll Fix some broken CHECK lines. 2017-01-22 20:28:56 +00:00
externally-initialized-global-ctr.ll
externally-initialized.ll
fastcc.ll [GlobalOpt] Don't apply fastcc if it would break inalloca invariants 2018-08-09 17:29:26 +00:00
global-demotion.ll
globalsra-multigep.ll [GlobalOpt] Test array indices inside structs for out-of-bounds accesses 2018-07-28 08:20:10 +00:00
globalsra-partial.ll [GlobalOpt] Test array indices inside structs for out-of-bounds accesses 2018-07-28 08:20:10 +00:00
globalsra-unknown-index.ll
globalsra.ll
heap-sra-1-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-1.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-2-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-2.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-3-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-3.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-4-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-4.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-phi-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
heap-sra-phi.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
int_sideeffect.ll Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
integer-bool-dwarf.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
integer-bool.ll
invariant-nodatalayout.ll
invariant.group.ll Implement strip.invariant.group 2018-07-02 04:49:30 +00:00
invariant.ll
invoke.ll
iterate.ll
load-store-global-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
load-store-global.ll
localize-constexpr-debuginfo.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
localize-constexpr.ll
malloc-promote-1-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
malloc-promote-1.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
malloc-promote-2-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
malloc-promote-2.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
malloc-promote-3.ll
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memset-null.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memset.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
metadata.ll
musttail_cc.ll [GlobalOpt] don't change CC of musttail calle(e|r) 2018-02-28 22:28:44 +00:00
naked_functions.ll [FunctionAttrs][ArgumentPromotion][GlobalOpt] Disable some optimisations passes for naked functions 2018-02-22 14:42:08 +00:00
phi-select.ll
pr21191.ll
pr33686.ll [GlobalOpt] Autogenerate checks for the test in PR33686. 2017-07-13 15:55:34 +00:00
preserve-comdats.ll
shrink-address-to-bool.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
shrink-global-to-bool-check-debug.ll [DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans. 2018-10-23 16:35:51 +00:00
static-const-bitcast.ll [GlobalOpt] Fix support for casts in ctors. 2018-04-06 15:54:47 +00:00
storepointer-compare-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
storepointer-compare.ll
storepointer-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
storepointer.ll
tls.ll
trivialstore.ll
undef-init.ll
unnamed-addr.ll
zeroinitializer-gep-load.ll