llvm-project/llvm/test/DebugInfo
Philip Reames 37ead201e6 [runtime-unroll] Use incrementing IVs instead of decrementing ones
This is one of those wonderful "in theory X doesn't matter, but in practice is does" changes. In this particular case, we shift the IVs inserted by the runtime unroller to clamp iteration count of the loops* from decrementing to incrementing.

Why does this matter?  A couple of reasons:
* SCEV doesn't have a native subtract node.  Instead, all subtracts (A - B) are represented as A + -1 * B and drops any flags invalidated by such.  As a result, SCEV is slightly less good at reasoning about edge cases involving decrementing addrecs than incrementing ones.  (You can see this in the inferred flags in some of the test cases.)
* Other parts of the optimizer produce incrementing IVs, and they're common in idiomatic source language.  We do have support for reversing IVs, but in general if we produce one of each, the pair will persist surprisingly far through the optimizer before being coalesced.  (You can see this looking at nearby phis in the test cases.)

Note that if the hardware prefers decrementing (i.e. zero tested) loops, LSR should convert back immediately before codegen.

* Mostly irrelevant detail: The main loop of the prolog case is handled independently and will simple use the original IV with a changed start value.  We could in theory use this scheme for all iteration clamping, but that's a larger and more invasive change.
2021-11-12 15:44:58 -08:00
..
AArch64 [DWARF] Revert sharing subprograms across CUs 2021-08-09 12:43:43 +01:00
AMDGPU [MCAsmInfo] Support UsesCFIForDebug for targets with no exception handling 2021-05-06 04:53:45 +05:30
ARM [DebugInfo][ARM] Fix incorrect debug information for RWPI accessed globals 2021-10-18 21:29:46 +01:00
BPF Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
COFF [CodeView] Properly handle a DISubprogram in getScopeIndex. 2021-11-09 13:18:07 -05:00
Generic Revert "[DebugInfo] Only create concrete DIEs of concrete functions" 2021-11-10 10:52:15 +01:00
Inputs [DWARF] Standardize checks and remove verbose where possible in DWARF tests 2021-10-31 09:49:10 -04:00
Lanai
MIR [CodeGen] Fix assertion failure in TwoAddressInstructionPass::rescheduleMIBelowKill 2021-11-09 09:24:21 +00:00
MSP430 [DebugInfo] Expand ability to load 2-byte addresses in dwarf sections 2021-10-21 17:31:00 -07:00
Mips [LiveDebugValues][InstrRef][2/2] Emit entry value variable locations 2021-06-30 23:07:39 +01:00
NVPTX Fixup [NVPTX] Add VRFrame and VRFrameLocal to integer register classes 2021-10-14 16:32:16 +03:00
PDB [test] Avoid llvm-readelf/llvm-readobj one-dash long options and deprecated aliases (e.g. --file-headers) 2021-07-15 10:26:21 -07:00
PowerPC [Debug-Info][llvm-dwarfdump] Don't use DW_FORM_data4/8 2021-07-26 03:47:02 +00:00
RISCV Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
Sparc [LiveDebugValues][InstrRef][2/2] Emit entry value variable locations 2021-06-30 23:07:39 +01:00
Symbolize/ELF [llvm-symbolizer][llvm-nm] Fix AArch64 and ARM mapping symbols handling. 2021-03-23 14:17:12 +01:00
SystemZ
WebAssembly [WebAssembly] Add TargetInstrInfo::getCalleeOperand 2021-05-26 11:43:59 -07:00
X86 [llvm] Inclusive language: replace master with main in file paths in LIT tests 2021-11-08 12:39:50 -06:00
XCOFF use right separator for windows. 2021-10-08 03:45:54 +00:00
arange-overlap.test
arm-relocs.test
attr-btf_tag.ll [NFC][Attr] rename attribute btf_tag to btf_decl_tag 2021-10-11 20:57:31 -07:00
attr-btf_type_tag.ll Reland "[Attr] support btf_type_tag attribute" 2021-11-05 11:25:17 -07:00
cDefaultLower.ll
check-debugify-preserves-analyses.ll
cross-cu-inlining.test
cross-cu-scope.ll Restore lit feature object-emission. Omit DebugInfo/Generic on XCore. 2021-04-16 13:02:14 +01:00
debug-frame-cie-pointer-reloc.test
debugify-bogus-dbg-value.ll [llvm] Inclusive language: replace master with main in file paths in LIT tests 2021-11-08 12:39:50 -06:00
debugify-each.ll [Debugify] Skip debugifying on special/immutable passes 2020-11-16 20:39:46 -08:00
debugify-export.ll [Debugify] Skip debugifying on special/immutable passes 2020-11-16 20:39:46 -08:00
debugify-ignore-phi.ll [Transforms][Debugify] Fix "Missing line" false alarm on PHI nodes 2021-05-14 14:06:13 +02:00
debugify-original-no-dbg-info.ll Reland "[Debugify] Make the debugify aware of the original (-g) Debug Info" 2021-02-18 23:29:22 -08:00
debugify-report-missing-locs-only.ll
debugify.ll [DIBuilder] Do not replace empty enum types 2021-08-30 12:33:03 -07:00
debuglineinfo-macho.test
debuglineinfo-path.ll Restore lit feature object-emission. Omit DebugInfo/Generic on XCore. 2021-04-16 13:02:14 +01:00
debuglineinfo.test
debugmacinfo-dwo.test
debugmacinfo.test
duplicate_dbgvalue.ll
dwarfdump-16bit-addr.test
dwarfdump-accel.test
dwarfdump-bad-lookup-address.test
dwarfdump-dataLocationExp.ll
dwarfdump-dataLocationVar.ll
dwarfdump-debug-frame-simple.test Add regular expressions to and DWARF Call Frame Information tests in case the architecture specific target is not compiled into LLVM. 2020-10-07 14:27:19 -07:00
dwarfdump-decompression-corrupt.test
dwarfdump-decompression-error.test
dwarfdump-dump-flags.test
dwarfdump-dump-gdbindex.test
dwarfdump-dwp.test
dwarfdump-implicit-const.test
dwarfdump-macho-relocs.test
dwarfdump-macho-universal.test
dwarfdump-objc.test
dwarfdump-pubnames.test
dwarfdump-pushobjectaddress.ll
dwarfdump-ranges.test
dwarfdump-type-units.test [llvm-dwarfdump] Improve testing of --summarize-types 2021-11-01 11:07:15 +00:00
dwarfdump-zlib.test
dwo.ll Restore lit feature object-emission. Omit DebugInfo/Generic on XCore. 2021-04-16 13:02:14 +01:00
fortran-string-type.ll [DebugInfo] Add handling of stringLengthExp operand of DIStringType. 2020-12-08 14:49:59 -05:00
fortranDefaultLower.ll
fortranSubrangeCountExpr.ll [DebugInfo] Upgrade DISubragne::count to accept DIExpression also 2021-03-30 09:16:55 +05:30
fortranSubrangeExpr.ll
fortranSubrangeInt.ll
fortranSubrangeVar.ll
gcc-local-mem-func.test
high-pc-constant.test
implicit-const-test2.s llvm-dwarfdump: Fix DWARF-5 DW_FORM_implicit_const (used by GCC) 2021-03-09 09:26:58 +01:00
invalid-inlined-subroutine.s Fix a crash in DWARFUnit::getInlinedChainForAddress in case of unexpected DWARF information. 2021-03-09 14:20:27 +04:00
invalid-relocations.test
limit-arglist-size.ll Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01:00
llvm-symbolizer-bbsections-test.s Recommit D91678 after fixing the test breakage. 2021-01-09 17:44:12 -08:00
macro_link.ll
member-pointers.o
missing-abstract-variable.o
omit-empty.ll Restore lit feature object-emission. Omit DebugInfo/Generic on XCore. 2021-04-16 13:02:14 +01:00
pr34186.ll
pr34672.ll
pr37964.ll [NFC] Rename GVN -> GVNPass and SROA -> SROAPass 2021-11-09 10:35:58 -08:00
precomp.test
salvage-cast-debug-info.ll
salvage-duplicate-values.ll Reapply "[DebugInfo] Enable variadic debug value salvaging" 2021-07-15 12:54:51 +01:00
salvage-gep.ll [DebugInfo] Correctly handle arrays with 0-width elements in GEP salvaging 2021-10-18 12:01:12 +01:00
salvage-limit-expr-size.ll [DebugInfo] Limit the size of DIExpressions that we will salvage up to 2021-10-15 17:34:21 +01:00
salvage-nonconst-binop.ll Reapply "[DebugInfo] Enable variadic debug value salvaging" 2021-07-15 12:54:51 +01:00
simplify-cfg-preserve-dbg-values.ll
skeletoncu.ll Restore lit feature object-emission. Omit DebugInfo/Generic on XCore. 2021-04-16 13:02:14 +01:00
strip-DIGlobalVariable.ll
strip-loop-metadata.ll
strip-module-flags.ll
symbolize-64bit-address.test
symbolize-absolute-path-in-debug-line.s
symbolize-build-id-error.test [yaml2obj] - ProgramHeaders: introduce FirstSec/LastSec instead of Sections list. 2020-11-09 13:00:50 +03:00
symbolize-build-id.test [yaml2obj] - ProgramHeaders: introduce FirstSec/LastSec instead of Sections list. 2020-11-09 13:00:50 +03:00
symbolize-demangling.s [Symbolize] Demangle Rust symbols 2021-10-16 13:32:17 +02:00
symbolize-directory.s
symbolize-gnu-debuglink-fallback.test
symbolize-gnu-debuglink-no-realpath.test
symbolize-gnu-debuglink.test
symbolize-inlined.test
symbolize-macho-universal-unknown-arch.test Revert several changes related to llvm-symbolizer exiting non-zero on failure. 2020-10-21 15:21:44 -07:00
symbolize-macho-universal.test
symbolize-missing-file.test [test] Use host platform specific error message substitution in lit tests 2021-01-29 07:16:30 -05:00
symbolize-no-debug-str.test
symbolize-paths.s
symbolize-shared-abbrev.s
symbolize-split-dwarf-empty.test
symbolize-split-dwarf-no-skel-address.test
symbolize-stripped-sections.test
symbolize-stripped.test
symbolize-tu.test
symbolize-zlib.test
symbolize.test
typeunit-header.test
unrolled-loop-remainder.ll [runtime-unroll] Use incrementing IVs instead of decrementing ones 2021-11-12 15:44:58 -08:00