llvm-project/llvm/lib/Target/Hexagon
Sergey Dmitrouk 842a51bad8 Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes"
[DebugInfo] Add debug locations to constant SD nodes

This adds debug location to constant nodes of Selection DAG and updates
all places that create constants to pass debug locations
(see PR13269).

Can't guarantee that all locations are correct, but in a lot of cases choice
is obvious, so most of them should be. At least all tests pass.

Tests for these changes do not cover everything, instead just check it for
SDNodes, ARM and AArch64 where it's easy to get incorrect locations on
constants.

This is not complete fix as FastISel contains workaround for wrong debug
locations, which drops locations from instructions on processing constants,
but there isn't currently a way to use debug locations from constants there
as llvm::Constant doesn't cache it (yet). Although this is a bit different
issue, not directly related to these changes.

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

llvm-svn: 235989
2015-04-28 14:05:47 +00:00
..
Disassembler [Hexagon] Moving remaining methods off of HexagonMCInst in to HexagonMCInstrInfo and eliminating HexagonMCInst class. 2015-02-19 21:10:50 +00:00
MCTargetDesc [Hexagon] Use constant extenders to fix up hardware loops 2015-04-27 14:16:43 +00:00
TargetInfo
CMakeLists.txt Expand MUX instructions early on Hexagon 2015-03-31 13:35:12 +00:00
Hexagon.h Hexagon: Remove pass that does nothing at all 2015-03-10 15:06:38 +00:00
Hexagon.td Make the Hexagon ISelDAGToDAG pass set the subtarget dynamically 2015-03-21 03:12:59 +00:00
HexagonAsmPrinter.cpp [AsmPrinter] Make AsmPrinter's OutStreamer member a unique_ptr. 2015-04-24 19:11:51 +00:00
HexagonAsmPrinter.h Define a runOnMachineFunction for the Hexagon AsmPrinter and 2015-02-03 06:40:22 +00:00
HexagonCFGOptimizer.cpp Grab TargetInstrInfo off of the MachineFunction and remove 2015-02-02 18:46:27 +00:00
HexagonCallingConv.td
HexagonCopyToCombine.cpp [Hexagon] Fix compiler warnings in release build 2015-04-23 20:26:21 +00:00
HexagonExpandCondsets.cpp [Hexagon] Avoid an unused variable warning when assertions are off 2015-03-31 19:43:47 +00:00
HexagonExpandPredSpillCode.cpp [Hexagon] Intrinsics for circular and bit-reversed loads and stores 2015-03-18 16:23:44 +00:00
HexagonFixupHwLoops.cpp [Hexagon] Use constant extenders to fix up hardware loops 2015-04-27 14:16:43 +00:00
HexagonFrameLowering.cpp Unbreak build 2015-04-23 20:57:39 +00:00
HexagonFrameLowering.h [Hexagon] Shrink-wrap stack frame (Hexagon-specific) 2015-04-23 16:05:39 +00:00
HexagonHardwareLoops.cpp Remove the remaining uses of abs64 and nuke it. 2015-03-09 20:20:16 +00:00
HexagonISelDAGToDAG.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
HexagonISelLowering.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
HexagonISelLowering.h [hexagon] Remove setHexLibcallName, it leaks memory. 2015-04-25 14:46:46 +00:00
HexagonInstrFormats.td [Hexagon] Separating InstHexagon from OpcodeHexagon. 2015-03-10 20:56:22 +00:00
HexagonInstrFormatsV4.td [Hexagon] Separating InstHexagon from OpcodeHexagon. 2015-03-10 20:56:22 +00:00
HexagonInstrInfo.cpp [Hexagon] Use constant extenders to fix up hardware loops 2015-04-27 14:16:43 +00:00
HexagonInstrInfo.h [Hexagon] Use constant extenders to fix up hardware loops 2015-04-27 14:16:43 +00:00
HexagonInstrInfo.td Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
HexagonInstrInfoV3.td [Hexagon] Removing v2-4 flags. V4 is the minimum supported version. 2015-02-09 21:07:35 +00:00
HexagonInstrInfoV4.td Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
HexagonInstrInfoV5.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonInstrInfoVector.td [Hexagon] Add support for vector instructions 2015-03-19 16:33:08 +00:00
HexagonIntrinsics.td [Hexagon] Intrinsics for circular and bit-reversed loads and stores 2015-03-18 16:23:44 +00:00
HexagonIntrinsicsDerived.td [Hexagon] Deleting a lot of old variants of intrinsics and updating references. 2015-01-28 18:29:11 +00:00
HexagonIntrinsicsV3.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonIntrinsicsV4.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonIntrinsicsV5.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonMCInstLower.cpp [Hexagon] Moving remaining methods off of HexagonMCInst in to HexagonMCInstrInfo and eliminating HexagonMCInst class. 2015-02-19 21:10:50 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h [Hexagon] Overhaul of stack object allocation 2015-04-22 16:43:53 +00:00
HexagonMachineScheduler.cpp Move HexagonMachineScheduler to use the subtarget off of the 2015-02-02 22:11:40 +00:00
HexagonMachineScheduler.h Move HexagonMachineScheduler to use the subtarget off of the 2015-02-02 22:11:40 +00:00
HexagonNewValueJump.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
HexagonOperands.td [Hexagon] Use constant extenders to fix up hardware loops 2015-04-27 14:16:43 +00:00
HexagonPeephole.cpp [Hexagon] Eliminating immediate condition set. 2015-03-09 19:57:18 +00:00
HexagonRegisterInfo.cpp [Hexagon] Overhaul of stack object allocation 2015-04-22 16:43:53 +00:00
HexagonRegisterInfo.h [Hexagon] Shrink-wrap stack frame (Hexagon-specific) 2015-04-23 16:05:39 +00:00
HexagonRegisterInfo.td [Hexagon] Adding vector shift instructions and tests. 2015-01-30 21:58:46 +00:00
HexagonRemoveSZExtArgs.cpp [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
HexagonSchedule.td [Hexagon] Add new InstrItinClass to support timing classes. 2014-05-08 18:47:08 +00:00
HexagonScheduleV4.td [Hexagon] Add new InstrItinClass to support timing classes. 2014-05-08 18:47:08 +00:00
HexagonSelectCCInfo.td
HexagonSelectionDAGInfo.cpp Have HexagonSelectionDAGInfo take a DataLayout rather than a 2014-06-27 00:18:25 +00:00
HexagonSelectionDAGInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
HexagonSplitConst32AndConst64.cpp [Hexagon] Use A2_tfrsi for constant pool and jump table addresses 2015-04-22 18:25:53 +00:00
HexagonSubtarget.cpp Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
HexagonSubtarget.h Remove useMachineScheduler and replace it with subtarget options 2015-03-11 22:56:10 +00:00
HexagonTargetMachine.cpp Expand MUX instructions early on Hexagon 2015-03-31 13:35:12 +00:00
HexagonTargetMachine.h Revert r233206 2015-03-25 20:21:16 +00:00
HexagonTargetObjectFile.cpp Compute the ELF SectionKind from the flags. 2015-01-29 17:33:21 +00:00
HexagonTargetObjectFile.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
HexagonVLIWPacketizer.cpp [Hexagon] Treat CFI as solo instructions 2015-04-22 15:47:35 +00:00
LLVMBuild.txt [Hexagon] [NFC] Merging InstPrinter directory in to MCTargetDesc since they have a circular dependency. 2014-11-20 21:56:35 +00:00
Makefile Update Makefile following directory removal in r222466 2014-11-20 22:48:24 +00:00