1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/DebugInfo
Adrian Prantl 017a58dbae GlobalISel/AArch64: don't optimize away redundant branches at -O0
This patch prevents GlobalISel from optimizing out redundant branch
instructions when compiling without optimizations.

The motivating example is code like the following common pattern in
Swift, where users expect to be able to set a breakpoint on the early
exit:

public func f(b: Bool) {
  guard b else {
    return // I would like to set a breakpoint here.
  }
  ...
}

The patch modifies two places in GlobalISEL: The first one is in
IRTranslator.cpp where the removal of redundant branches is made
conditional on the optimization level. The second one is in
AArch64InstructionSelector.cpp where an -O0 *only* optimization is
being removed.

Disabling these optimizations increases code size at -O0 by
~8%. However, doing so improves debuggability, and debug builds are
the primary reason why developers compile without optimizations. We
thus concluded that this is the right trade-off.

rdar://79515454

Differential Revision: https://reviews.llvm.org/D105238
2021-07-07 12:51:55 -07:00
..
AArch64 GlobalISel/AArch64: don't optimize away redundant branches at -O0 2021-07-07 12:51:55 -07:00
AMDGPU [MCAsmInfo] Support UsesCFIForDebug for targets with no exception handling 2021-05-06 04:53:45 +05:30
ARM [LiveDebugValues][InstrRef][2/2] Emit entry value variable locations 2021-06-30 23:07:39 +01:00
BPF Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
COFF Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
Generic XFAIL a testcase on Hexagon (missing-abstract-variable.ll) 2021-06-18 13:15:19 -05:00
Inputs Move dwarfdump-invalid.test into the tools/llvm-dwarfdump directory. 2021-06-23 12:00:34 -07:00
Lanai
Mips [LiveDebugValues][InstrRef][2/2] Emit entry value variable locations 2021-06-30 23:07:39 +01:00
MIR [DebugInfo][InstrRef][2/4] Use subreg substitutions in LiveDebugValues 2021-07-01 13:07:16 +01:00
MSP430
NVPTX Revert "[DebugInfo] Enable variadic debug value salvaging" 2021-06-28 11:25:09 -04:00
PDB [lld] Fixed CodeView GuidAdapter::format to handle GUID bytes in the right order. 2021-04-09 05:29:14 +04:00
PowerPC [Debug-Info] make DIE attributes generation under strict DWARF control 2021-05-13 20:34:07 -04: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 [DebugInfo][InstrRef][3/4] Produce DBG_INSTR_REFs for all variable locations 2021-07-06 18:31:38 +01:00
XCOFF [AIX][XCOFF] emit vector info of traceback table. 2021-06-14 11:15:22 -04:00
arange-overlap.test
arm-relocs.test
cDefaultLower.ll
check-debugify-preserves-analyses.ll [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
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
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 Reland "[MachineDebugify] Insert synthetic DBG_VALUE instructions" 2020-12-14 22:34:23 -05: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
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 [Debugify] Port -debugify-each to NewPM 2020-11-02 08:16:43 -08:00
precomp.test
salvage-cast-debug-info.ll [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
salvage-gep.ll Revert "[DebugInfo] Enable variadic debug value salvaging" 2021-06-28 11:25:09 -04:00
salvage-nonconst-binop.ll Revert "[DebugInfo] Enable variadic debug value salvaging" 2021-06-28 11:25:09 -04: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-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