opnsense-src/contrib/llvm/lib/CodeGen
Dimitry Andric 3b78f6062f Pull in r294458 from upstream llvm trunk (by Sanne Wouda):
[Assembler] Enable nicer diagnostics for inline assembly.

  Fixed test.

  Summary:
  Enables source location in diagnostic messages from the backend.
  This is after parsing, during finalization.  This requires the
  SourceMgr, the inline assembly string buffer, and DiagInfo to still
  be alive after EmitInlineAsm returns.

  This patch creates a single SourceMgr for inline assembly inside the
  AsmPrinter.  MCContext gets a pointer to this SourceMgr.  Using one
  SourceMgr per call to EmitInlineAsm would make it difficult for
  MCContext to figure out in which SourceMgr the SMLoc is located,
  while a single SourceMgr can figure it out if it has multiple
  buffers.

  The Str argument to EmitInlineAsm is copied into a buffer and owned
  by the inline asm SourceMgr.  This ensures that DiagHandlers won't
  print garbage.  (Clang emits a "note: instantiated into assembly
  here", which refers to this string.)

  The AsmParser gets destroyed before finalization, which means that
  the DiagHandlers the AsmParser installs into the SourceMgr will be
  stale.  Restore the saved DiagHandlers.

  Since now we're using just one SourceMgr for multiple inline asm
  strings, we need to tell the AsmParser which buffer it needs to parse
  currently.  Hand a buffer id -- returned from SourceMgr::
  AddNewSourceBuffer -- to the AsmParser.

  Reviewers: rnk, grosbach, compnerd, rengolin, rovka, anemet

  Reviewed By: rnk

  Subscribers: llvm-commits

  Differential Revision: https://reviews.llvm.org/D29441

This improves error reporting for some inline assembly constructs that
clang does not approve of: instead of crashing with a "fatal backend
error", it will now show a normal error message, and point out the
location of the problematic assembly.

Reported by:	mmel
MFC after:	1 week
2017-04-26 19:33:56 +00:00
..
AsmPrinter Pull in r294458 from upstream llvm trunk (by Sanne Wouda): 2017-04-26 19:33:56 +00:00
GlobalISel Merge llvm, clang, lld and lldb release_40 branch r292009. Also update 2017-01-14 22:12:13 +00:00
MIRParser Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SelectionDAG Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-17 20:07:35 +00:00
AggressiveAntiDepBreaker.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
AggressiveAntiDepBreaker.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
AllocationOrder.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
AllocationOrder.h Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
Analysis.cpp Merge llvm, clang, lld and lldb trunk r291012, and resolve conflicts. 2017-01-04 22:19:42 +00:00
AntiDepBreaker.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
AtomicExpandPass.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
BasicTargetTransformInfo.cpp Update llvm to trunk r256633. 2015-12-30 13:13:10 +00:00
BranchFolding.cpp Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-11 13:58:05 +00:00
BranchFolding.h Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
BranchRelaxation.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
BuiltinGCs.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
CalcSpillWeights.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
CallingConvLower.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
CodeGen.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
CodeGenPrepare.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
CountingFunctionInserter.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
CriticalAntiDepBreaker.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
CriticalAntiDepBreaker.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
DeadMachineInstructionElim.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
DetectDeadLanes.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
DFAPacketizer.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
DwarfEHPrepare.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
EarlyIfConversion.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
EdgeBundles.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ExecutionDepsFix.cpp Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-28 21:18:23 +00:00
ExpandISelPseudos.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
ExpandPostRAPseudos.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
FaultMaps.cpp Update llvm/clang to r241361. 2015-07-05 22:34:42 +00:00
FuncletLayout.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
GCMetadata.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
GCMetadataPrinter.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
GCRootLowering.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
GCStrategy.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
GlobalMerge.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
IfConversion.cpp Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts. 2017-01-06 20:24:06 +00:00
ImplicitNullChecks.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
InlineSpiller.cpp Merge llvm, clang, lld and lldb trunk r291012, and resolve conflicts. 2017-01-04 22:19:42 +00:00
InterferenceCache.cpp Update llvm to trunk r256633. 2015-12-30 13:13:10 +00:00
InterferenceCache.h Update llvm/clang to r241361. 2015-07-05 22:34:42 +00:00
InterleavedAccessPass.cpp Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-01 21:57:07 +00:00
IntrinsicLowering.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LatencyPriorityQueue.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LexicalScopes.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveDebugValues.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveDebugVariables.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveDebugVariables.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
LiveInterval.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveIntervalAnalysis.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveIntervalUnion.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LivePhysRegs.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveRangeCalc.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveRangeCalc.h Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveRangeEdit.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveRangeUtils.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
LiveRegMatrix.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LiveStackAnalysis.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
LiveVariables.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LLVMTargetMachine.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LocalStackSlotAllocation.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LowerEmuTLS.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
LowLevelType.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineBasicBlock.cpp Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts. 2017-01-06 20:24:06 +00:00
MachineBlockFrequencyInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineBlockPlacement.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineBranchProbabilityInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineCombiner.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineCopyPropagation.cpp Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-11 13:58:05 +00:00
MachineCSE.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineDominanceFrontier.cpp Merge llvm 3.6.0rc1 from ^/vendor/llvm/dist, merge clang 3.6.0rc1 from 2015-01-25 23:36:55 +00:00
MachineDominators.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
MachineFunction.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineFunctionPass.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineFunctionPrinterPass.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineInstr.cpp Merge llvm, clang, lld and lldb release_40 branch r292009. Also update 2017-01-14 22:12:13 +00:00
MachineInstrBundle.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineLICM.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineLoopInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineModuleInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineModuleInfoImpls.cpp Merge llvm trunk r238337 from ^/vendor/llvm/dist, resolve conflicts, and 2015-05-27 20:26:41 +00:00
MachinePassRegistry.cpp Merge llvm 3.5.0 release from ^/vendor/llvm/dist, resolve conflicts, and 2014-11-24 17:02:24 +00:00
MachinePipeliner.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachinePostDominators.cpp Upgrade our copy of llvm/clang to r168974, from upstream's release_32 2012-12-03 19:24:08 +00:00
MachineRegionInfo.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
MachineRegisterInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineScheduler.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineSink.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineSSAUpdater.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineTraceMetrics.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
MachineVerifier.cpp Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts. 2017-01-06 20:24:06 +00:00
MIRPrinter.cpp Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts. 2017-01-06 20:24:06 +00:00
MIRPrinter.h Update llvm/clang to r240225. 2015-06-23 18:44:19 +00:00
MIRPrintingPass.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
OptimizePHIs.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ParallelCG.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PatchableFunction.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PeepholeOptimizer.cpp Merge llvm, clang, lld and lldb release_40 branch r292009. Also update 2017-01-14 22:12:13 +00:00
PHIElimination.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PHIEliminationUtils.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PHIEliminationUtils.h Merge llvm 3.6.0rc1 from ^/vendor/llvm/dist, merge clang 3.6.0rc1 from 2015-01-25 23:36:55 +00:00
PostRAHazardRecognizer.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
PostRASchedulerList.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PreISelIntrinsicLowering.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
ProcessImplicitDefs.cpp Update llvm to trunk r256633. 2015-12-30 13:13:10 +00:00
PrologEpilogInserter.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
PseudoSourceValue.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
RegAllocBase.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegAllocBase.h Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegAllocBasic.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegAllocFast.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegAllocGreedy.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegAllocPBQP.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegisterClassInfo.cpp Merge llvm trunk r238337 from ^/vendor/llvm/dist, resolve conflicts, and 2015-05-27 20:26:41 +00:00
RegisterCoalescer.cpp Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-11 13:58:05 +00:00
RegisterCoalescer.h Update llvm/clang to r241361. 2015-07-05 22:34:42 +00:00
RegisterPressure.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegisterScavenging.cpp Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts. 2017-01-06 20:24:06 +00:00
RegisterUsageInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegUsageInfoCollector.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RegUsageInfoPropagate.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
RenameIndependentSubregs.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ResetMachineFunctionPass.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SafeStack.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SafeStackColoring.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SafeStackColoring.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
SafeStackLayout.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SafeStackLayout.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
ScheduleDAG.cpp Merge llvm, clang, lld and lldb release_40 branch r292009. Also update 2017-01-14 22:12:13 +00:00
ScheduleDAGInstrs.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ScheduleDAGPrinter.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
ScoreboardHazardRecognizer.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ShadowStackGCLowering.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
ShrinkWrap.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SjLjEHPrepare.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SlotIndexes.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
Spiller.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
SpillPlacement.cpp Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
SpillPlacement.h Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
SplitKit.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
SplitKit.h Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
StackColoring.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
StackMapLivenessAnalysis.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
StackMaps.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
StackProtector.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
StackSlotColoring.cpp Merge llvm, clang, lld and lldb trunk r291476. 2017-01-09 22:32:19 +00:00
TailDuplication.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TailDuplicator.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetFrameLoweringImpl.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetInstrInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetLoweringBase.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetLoweringObjectFileImpl.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetOptionsImpl.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetPassConfig.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetRegisterInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetSchedule.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TargetSubtargetInfo.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
TwoAddressInstructionPass.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
UnreachableBlockElim.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
VirtRegMap.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
WinEHPrepare.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
XRayInstrumentation.cpp Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00