<div dir="ltr">This broke the WebAssembly build, fixed in r259020.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 27, 2016 at 8:41 PM, NAKAMURA Takumi via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chapuni<br>
Date: Wed Jan 27 22:41:32 2016<br>
New Revision: 259016<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=259016&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=259016&view=rev</a><br>
Log:<br>
Revert r258951 (and r258950), "Refactor backend diagnostics for unsupported features"<br>
<br>
It broke layering violation in LLVMIR.<br>
<br>
clang r258950 "Add backend dignostic printer for unsupported features"<br>
llvm r258951 "Refactor backend diagnostics for unsupported features"<br>
<br>
Added:<br>
llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp<br>
llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h<br>
Removed:<br>
llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp<br>
Modified:<br>
llvm/trunk/include/llvm/IR/DiagnosticInfo.h<br>
llvm/trunk/lib/CodeGen/CMakeLists.txt<br>
llvm/trunk/lib/IR/DiagnosticInfo.cpp<br>
llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp<br>
llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp<br>
llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt<br>
llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp<br>
llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp<br>
llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp<br>
llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/call.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll<br>
llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll<br>
<br>
Modified: llvm/trunk/include/llvm/IR/DiagnosticInfo.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DiagnosticInfo.h?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DiagnosticInfo.h?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/IR/DiagnosticInfo.h (original)<br>
+++ llvm/trunk/include/llvm/IR/DiagnosticInfo.h Wed Jan 27 22:41:32 2016<br>
@@ -16,7 +16,6 @@<br>
#define LLVM_IR_DIAGNOSTICINFO_H<br>
<br>
#include "llvm/ADT/ArrayRef.h"<br>
-#include "llvm/CodeGen/SelectionDAG.h"<br>
#include "llvm/IR/DebugLoc.h"<br>
#include "llvm/IR/Module.h"<br>
#include "llvm/Support/Casting.h"<br>
@@ -61,7 +60,6 @@ enum DiagnosticKind {<br>
DK_OptimizationFailure,<br>
DK_MIRParser,<br>
DK_PGOProfile,<br>
- DK_Unsupported,<br>
DK_FirstPluginKind<br>
};<br>
<br>
@@ -277,42 +275,8 @@ private:<br>
const Twine &Msg;<br>
};<br>
<br>
-/// Common features for diagnostics with an associated DebugLoc<br>
-class DiagnosticInfoWithDebugLocBase : public DiagnosticInfo {<br>
-public:<br>
- /// \p Fn is the function where the diagnostic is being emitted. \p DLoc is<br>
- /// the location information to use in the diagnostic.<br>
- DiagnosticInfoWithDebugLocBase(enum DiagnosticKind Kind,<br>
- enum DiagnosticSeverity Severity,<br>
- const Function &Fn,<br>
- const DebugLoc &DLoc)<br>
- : DiagnosticInfo(Kind, Severity), Fn(Fn), DLoc(DLoc) {}<br>
-<br>
- /// Return true if location information is available for this diagnostic.<br>
- bool isLocationAvailable() const;<br>
-<br>
- /// Return a string with the location information for this diagnostic<br>
- /// in the format "file:line:col". If location information is not available,<br>
- /// it returns "<unknown>:0:0".<br>
- const std::string getLocationStr() const;<br>
-<br>
- /// Return location information for this diagnostic in three parts:<br>
- /// the source file name, line number and column.<br>
- void getLocation(StringRef *Filename, unsigned *Line, unsigned *Column) const;<br>
-<br>
- const Function &getFunction() const { return Fn; }<br>
- const DebugLoc &getDebugLoc() const { return DLoc; }<br>
-<br>
-private:<br>
- /// Function where this diagnostic is triggered.<br>
- const Function &Fn;<br>
-<br>
- /// Debug location where this diagnostic is triggered.<br>
- DebugLoc DLoc;<br>
-};<br>
-<br>
/// Common features for diagnostics dealing with optimization remarks.<br>
-class DiagnosticInfoOptimizationBase : public DiagnosticInfoWithDebugLocBase {<br>
+class DiagnosticInfoOptimizationBase : public DiagnosticInfo {<br>
public:<br>
/// \p PassName is the name of the pass emitting this diagnostic.<br>
/// \p Fn is the function where the diagnostic is being emitted. \p DLoc is<br>
@@ -325,8 +289,8 @@ public:<br>
enum DiagnosticSeverity Severity,<br>
const char *PassName, const Function &Fn,<br>
const DebugLoc &DLoc, const Twine &Msg)<br>
- : DiagnosticInfoWithDebugLocBase(Kind, Severity, Fn, DLoc),<br>
- PassName(PassName), Msg(Msg) {}<br>
+ : DiagnosticInfo(Kind, Severity), PassName(PassName), Fn(Fn), DLoc(DLoc),<br>
+ Msg(Msg) {}<br>
<br>
/// \see DiagnosticInfo::print.<br>
void print(DiagnosticPrinter &DP) const override;<br>
@@ -338,7 +302,21 @@ public:<br>
/// in BackendConsumer::OptimizationRemarkHandler).<br>
virtual bool isEnabled() const = 0;<br>
<br>
+ /// Return true if location information is available for this diagnostic.<br>
+ bool isLocationAvailable() const;<br>
+<br>
+ /// Return a string with the location information for this diagnostic<br>
+ /// in the format "file:line:col". If location information is not available,<br>
+ /// it returns "<unknown>:0:0".<br>
+ const std::string getLocationStr() const;<br>
+<br>
+ /// Return location information for this diagnostic in three parts:<br>
+ /// the source file name, line number and column.<br>
+ void getLocation(StringRef *Filename, unsigned *Line, unsigned *Column) const;<br>
+<br>
const char *getPassName() const { return PassName; }<br>
+ const Function &getFunction() const { return Fn; }<br>
+ const DebugLoc &getDebugLoc() const { return DLoc; }<br>
const Twine &getMsg() const { return Msg; }<br>
<br>
private:<br>
@@ -347,6 +325,12 @@ private:<br>
/// be emitted.<br>
const char *PassName;<br>
<br>
+ /// Function where this diagnostic is triggered.<br>
+ const Function &Fn;<br>
+<br>
+ /// Debug location where this diagnostic is triggered.<br>
+ DebugLoc DLoc;<br>
+<br>
/// Message to report.<br>
const Twine &Msg;<br>
};<br>
@@ -588,35 +572,6 @@ public:<br>
bool isEnabled() const override;<br>
};<br>
<br>
-/// Diagnostic information for unsupported feature in backend.<br>
-class DiagnosticInfoUnsupported<br>
- : public DiagnosticInfoWithDebugLocBase {<br>
-private:<br>
- const Twine &Msg;<br>
- const SDValue Value;<br>
-<br>
-public:<br>
- /// \p Fn is the function where the diagnostic is being emitted. \p DLoc is<br>
- /// the location information to use in the diagnostic. If line table<br>
- /// information is available, the diagnostic will include the source code<br>
- /// location. \p Msg is the message to show. Note that this class does not<br>
- /// copy this message, so this reference must be valid for the whole life time<br>
- /// of the diagnostic.<br>
- DiagnosticInfoUnsupported(const Function &Fn, const Twine &Msg,<br>
- SDLoc DLoc = SDLoc(), SDValue Value = SDValue())<br>
- : DiagnosticInfoWithDebugLocBase(DK_Unsupported, DS_Error, Fn,<br>
- DLoc.getDebugLoc()),<br>
- Msg(Msg), Value(Value) {}<br>
-<br>
- static bool classof(const DiagnosticInfo *DI) {<br>
- return DI->getKind() == DK_Unsupported;<br>
- }<br>
-<br>
- const Twine &getMessage() const { return Msg; }<br>
-<br>
- void print(DiagnosticPrinter &DP) const;<br>
-};<br>
-<br>
/// Emit a warning when loop vectorization is specified but fails. \p Fn is the<br>
/// function triggering the warning, \p DLoc is the debug location where the<br>
/// diagnostic is generated. \p Msg is the message string to use.<br>
<br>
Modified: llvm/trunk/lib/CodeGen/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CMakeLists.txt?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CMakeLists.txt?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/CMakeLists.txt (original)<br>
+++ llvm/trunk/lib/CodeGen/CMakeLists.txt Wed Jan 27 22:41:32 2016<br>
@@ -18,7 +18,6 @@ add_llvm_library(LLVMCodeGen<br>
CriticalAntiDepBreaker.cpp<br>
DeadMachineInstructionElim.cpp<br>
DFAPacketizer.cpp<br>
- DiagnosticInfoCodeGen.cpp<br>
DwarfEHPrepare.cpp<br>
EarlyIfConversion.cpp<br>
EdgeBundles.cpp<br>
<br>
Removed: llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp?rev=259015&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp?rev=259015&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/DiagnosticInfoCodeGen.cpp (removed)<br>
@@ -1,33 +0,0 @@<br>
-//===- llvm/Support/DiagnosticInfo.cpp - Diagnostic Definitions -*- C++ -*-===//<br>
-//<br>
-// The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file defines the different classes involved in codegen diagnostics.<br>
-//<br>
-// Diagnostics reporting is still done as part of the LLVMContext.<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "llvm/IR/DiagnosticInfo.h"<br>
-#include "llvm/IR/DiagnosticPrinter.h"<br>
-<br>
-namespace llvm {<br>
-<br>
-void DiagnosticInfoUnsupported::print(DiagnosticPrinter &DP) const {<br>
- std::string Str;<br>
- raw_string_ostream OS(Str);<br>
-<br>
- OS << getLocationStr() << ": in function " << getFunction().getName() << ' '<br>
- << *getFunction().getFunctionType() << ": " << Msg;<br>
- if (Value)<br>
- Value->print(OS);<br>
- OS << '\n';<br>
- OS.flush();<br>
- DP << Str;<br>
-}<br>
-<br>
-}<br>
<br>
Modified: llvm/trunk/lib/IR/DiagnosticInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DiagnosticInfo.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DiagnosticInfo.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/IR/DiagnosticInfo.cpp (original)<br>
+++ llvm/trunk/lib/IR/DiagnosticInfo.cpp Wed Jan 27 22:41:32 2016<br>
@@ -138,11 +138,11 @@ void DiagnosticInfoPGOProfile::print(Dia<br>
DP << getMsg();<br>
}<br>
<br>
-bool DiagnosticInfoWithDebugLocBase::isLocationAvailable() const {<br>
+bool DiagnosticInfoOptimizationBase::isLocationAvailable() const {<br>
return getDebugLoc();<br>
}<br>
<br>
-void DiagnosticInfoWithDebugLocBase::getLocation(StringRef *Filename,<br>
+void DiagnosticInfoOptimizationBase::getLocation(StringRef *Filename,<br>
unsigned *Line,<br>
unsigned *Column) const {<br>
DILocation *L = getDebugLoc();<br>
@@ -152,7 +152,7 @@ void DiagnosticInfoWithDebugLocBase::get<br>
*Column = L->getColumn();<br>
}<br>
<br>
-const std::string DiagnosticInfoWithDebugLocBase::getLocationStr() const {<br>
+const std::string DiagnosticInfoOptimizationBase::getLocationStr() const {<br>
StringRef Filename("<unknown>");<br>
unsigned Line = 0;<br>
unsigned Column = 0;<br>
<br>
Added: llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp?rev=259016&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp?rev=259016&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp (added)<br>
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp Wed Jan 27 22:41:32 2016<br>
@@ -0,0 +1,26 @@<br>
+//===-- AMDGPUDiagnosticInfoUnsupported.cpp -------------------------------===//<br>
+//<br>
+// The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#include "AMDGPUDiagnosticInfoUnsupported.h"<br>
+<br>
+using namespace llvm;<br>
+<br>
+DiagnosticInfoUnsupported::DiagnosticInfoUnsupported(<br>
+ const Function &Fn,<br>
+ const Twine &Desc,<br>
+ DiagnosticSeverity Severity)<br>
+ : DiagnosticInfo(getKindID(), Severity),<br>
+ Description(Desc),<br>
+ Fn(Fn) { }<br>
+<br>
+int DiagnosticInfoUnsupported::KindID = 0;<br>
+<br>
+void DiagnosticInfoUnsupported::print(DiagnosticPrinter &DP) const {<br>
+ DP << "unsupported " << getDescription() << " in " << Fn.getName();<br>
+}<br>
<br>
Added: llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h?rev=259016&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h?rev=259016&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h (added)<br>
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h Wed Jan 27 22:41:32 2016<br>
@@ -0,0 +1,48 @@<br>
+//===-- AMDGPUDiagnosticInfoUnsupported.h - Error reporting -----*- C++ -*-===//<br>
+//<br>
+// The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUDIAGNOSTICINFOUNSUPPORTED_H<br>
+#define LLVM_LIB_TARGET_AMDGPU_AMDGPUDIAGNOSTICINFOUNSUPPORTED_H<br>
+<br>
+#include "llvm/IR/DiagnosticInfo.h"<br>
+#include "llvm/IR/DiagnosticPrinter.h"<br>
+<br>
+namespace llvm {<br>
+<br>
+/// Diagnostic information for unimplemented or unsupported feature reporting.<br>
+class DiagnosticInfoUnsupported : public DiagnosticInfo {<br>
+private:<br>
+ const Twine &Description;<br>
+ const Function &Fn;<br>
+<br>
+ static int KindID;<br>
+<br>
+ static int getKindID() {<br>
+ if (KindID == 0)<br>
+ KindID = llvm::getNextAvailablePluginDiagnosticKind();<br>
+ return KindID;<br>
+ }<br>
+<br>
+public:<br>
+ DiagnosticInfoUnsupported(const Function &Fn, const Twine &Desc,<br>
+ DiagnosticSeverity Severity = DS_Error);<br>
+<br>
+ const Function &getFunction() const { return Fn; }<br>
+ const Twine &getDescription() const { return Description; }<br>
+<br>
+ void print(DiagnosticPrinter &DP) const override;<br>
+<br>
+ static bool classof(const DiagnosticInfo *DI) {<br>
+ return DI->getKind() == getKindID();<br>
+ }<br>
+};<br>
+<br>
+}<br>
+<br>
+#endif<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Wed Jan 27 22:41:32 2016<br>
@@ -12,6 +12,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "AMDGPUDiagnosticInfoUnsupported.h"<br>
#include "AMDGPUInstrInfo.h"<br>
#include "AMDGPUISelLowering.h" // For AMDGPUISD<br>
#include "AMDGPURegisterInfo.h"<br>
@@ -26,7 +27,6 @@<br>
#include "llvm/CodeGen/PseudoSourceValue.h"<br>
#include "llvm/CodeGen/SelectionDAG.h"<br>
#include "llvm/CodeGen/SelectionDAGISel.h"<br>
-#include "llvm/IR/DiagnosticInfo.h"<br>
#include "llvm/IR/Function.h"<br>
<br>
using namespace llvm;<br>
@@ -1220,7 +1220,7 @@ SDNode *AMDGPUDAGToDAGISel::SelectAddrSp<br>
<br>
const MachineFunction &MF = CurDAG->getMachineFunction();<br>
DiagnosticInfoUnsupported NotImplemented(*MF.getFunction(),<br>
- "addrspacecast not implemented", DL);<br>
+ "addrspacecast not implemented");<br>
CurDAG->getContext()->diagnose(NotImplemented);<br>
<br>
assert(Subtarget->hasFlatAddressSpace() &&<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp Wed Jan 27 22:41:32 2016<br>
@@ -15,7 +15,7 @@<br>
<br>
#include "AMDGPUISelLowering.h"<br>
#include "AMDGPU.h"<br>
-//#include "AMDGPUDiagnosticInfoUnsupported.h"<br>
+#include "AMDGPUDiagnosticInfoUnsupported.h"<br>
#include "AMDGPUFrameLowering.h"<br>
#include "AMDGPUIntrinsicInfo.h"<br>
#include "AMDGPURegisterInfo.h"<br>
@@ -28,7 +28,6 @@<br>
#include "llvm/CodeGen/SelectionDAG.h"<br>
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"<br>
#include "llvm/IR/DataLayout.h"<br>
-#include "llvm/IR/DiagnosticInfo.h"<br>
#include "SIInstrInfo.h"<br>
using namespace llvm;<br>
<br>
@@ -610,7 +609,7 @@ SDValue AMDGPUTargetLowering::LowerCall(<br>
else if (const GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))<br>
FuncName = G->getGlobal()->getName();<br>
<br>
- DiagnosticInfoUnsupported NoCalls(Fn, "unsupported call to function " + FuncName, CLI.DL);<br>
+ DiagnosticInfoUnsupported NoCalls(Fn, "call to function " + FuncName);<br>
DAG.getContext()->diagnose(NoCalls);<br>
return SDValue();<br>
}<br>
@@ -619,7 +618,7 @@ SDValue AMDGPUTargetLowering::LowerDYNAM<br>
SelectionDAG &DAG) const {<br>
const Function &Fn = *DAG.getMachineFunction().getFunction();<br>
<br>
- DiagnosticInfoUnsupported NoDynamicAlloca(Fn, "unsupported dynamic alloca", SDLoc(Op));<br>
+ DiagnosticInfoUnsupported NoDynamicAlloca(Fn, "dynamic alloca");<br>
DAG.getContext()->diagnose(NoDynamicAlloca);<br>
return SDValue();<br>
}<br>
@@ -866,8 +865,8 @@ SDValue AMDGPUTargetLowering::LowerGloba<br>
}<br>
<br>
const Function &Fn = *DAG.getMachineFunction().getFunction();<br>
- DiagnosticInfoUnsupported BadInit(<br>
- Fn, "unsupported initializer for address space", SDLoc(Op));<br>
+ DiagnosticInfoUnsupported BadInit(Fn,<br>
+ "initializer for address space");<br>
DAG.getContext()->diagnose(BadInit);<br>
return SDValue();<br>
}<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt Wed Jan 27 22:41:32 2016<br>
@@ -18,6 +18,7 @@ add_llvm_target(AMDGPUCodeGen<br>
AMDGPUAnnotateKernelFeatures.cpp<br>
AMDGPUAnnotateUniformValues.cpp<br>
AMDGPUAsmPrinter.cpp<br>
+ AMDGPUDiagnosticInfoUnsupported.cpp<br>
AMDGPUFrameLowering.cpp<br>
AMDGPUTargetObjectFile.cpp<br>
AMDGPUIntrinsicInfo.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp Wed Jan 27 22:41:32 2016<br>
@@ -20,6 +20,7 @@<br>
<br>
#include "SIISelLowering.h"<br>
#include "AMDGPU.h"<br>
+#include "AMDGPUDiagnosticInfoUnsupported.h"<br>
#include "AMDGPUIntrinsicInfo.h"<br>
#include "AMDGPUSubtarget.h"<br>
#include "SIInstrInfo.h"<br>
@@ -31,7 +32,6 @@<br>
#include "llvm/CodeGen/MachineInstrBuilder.h"<br>
#include "llvm/CodeGen/MachineRegisterInfo.h"<br>
#include "llvm/CodeGen/SelectionDAG.h"<br>
-#include "llvm/IR/DiagnosticInfo.h"<br>
#include "llvm/IR/Function.h"<br>
#include "llvm/ADT/SmallString.h"<br>
<br>
@@ -591,8 +591,7 @@ SDValue SITargetLowering::LowerFormalArg<br>
<br>
if (Subtarget->isAmdHsaOS() && Info->getShaderType() != ShaderType::COMPUTE) {<br>
const Function *Fn = MF.getFunction();<br>
- DiagnosticInfoUnsupported NoGraphicsHSA(<br>
- *Fn, "unsupported non-compute shaders with HSA", DL);<br>
+ DiagnosticInfoUnsupported NoGraphicsHSA(*Fn, "non-compute shaders with HSA");<br>
DAG.getContext()->diagnose(NoGraphicsHSA);<br>
return SDValue();<br>
}<br>
@@ -1321,9 +1320,8 @@ SDValue SITargetLowering::LowerINTRINSIC<br>
switch (IntrinsicID) {<br>
case Intrinsic::amdgcn_dispatch_ptr:<br>
if (!Subtarget->isAmdHsaOS()) {<br>
- DiagnosticInfoUnsupported BadIntrin(<br>
- *MF.getFunction(), "unsupported hsa intrinsic without hsa target",<br>
- DL);<br>
+ DiagnosticInfoUnsupported BadIntrin(*MF.getFunction(),<br>
+ "hsa intrinsic without hsa target");<br>
DAG.getContext()->diagnose(BadIntrin);<br>
return DAG.getUNDEF(VT);<br>
}<br>
<br>
Modified: llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/BPF/BPFISelLowering.cpp Wed Jan 27 22:41:32 2016<br>
@@ -34,6 +34,60 @@ using namespace llvm;<br>
<br>
#define DEBUG_TYPE "bpf-lower"<br>
<br>
+namespace {<br>
+<br>
+// Diagnostic information for unimplemented or unsupported feature reporting.<br>
+class DiagnosticInfoUnsupported : public DiagnosticInfo {<br>
+private:<br>
+ // Debug location where this diagnostic is triggered.<br>
+ DebugLoc DLoc;<br>
+ const Twine &Description;<br>
+ const Function &Fn;<br>
+ SDValue Value;<br>
+<br>
+ static int KindID;<br>
+<br>
+ static int getKindID() {<br>
+ if (KindID == 0)<br>
+ KindID = llvm::getNextAvailablePluginDiagnosticKind();<br>
+ return KindID;<br>
+ }<br>
+<br>
+public:<br>
+ DiagnosticInfoUnsupported(SDLoc DLoc, const Function &Fn, const Twine &Desc,<br>
+ SDValue Value)<br>
+ : DiagnosticInfo(getKindID(), DS_Error), DLoc(DLoc.getDebugLoc()),<br>
+ Description(Desc), Fn(Fn), Value(Value) {}<br>
+<br>
+ void print(DiagnosticPrinter &DP) const override {<br>
+ std::string Str;<br>
+ raw_string_ostream OS(Str);<br>
+<br>
+ if (DLoc) {<br>
+ auto DIL = DLoc.get();<br>
+ StringRef Filename = DIL->getFilename();<br>
+ unsigned Line = DIL->getLine();<br>
+ unsigned Column = DIL->getColumn();<br>
+ OS << Filename << ':' << Line << ':' << Column << ' ';<br>
+ }<br>
+<br>
+ OS << "in function " << Fn.getName() << ' ' << *Fn.getFunctionType() << '\n'<br>
+ << Description;<br>
+ if (Value)<br>
+ Value->print(OS);<br>
+ OS << '\n';<br>
+ OS.flush();<br>
+ DP << Str;<br>
+ }<br>
+<br>
+ static bool classof(const DiagnosticInfo *DI) {<br>
+ return DI->getKind() == getKindID();<br>
+ }<br>
+};<br>
+<br>
+int DiagnosticInfoUnsupported::KindID = 0;<br>
+}<br>
+<br>
BPFTargetLowering::BPFTargetLowering(const TargetMachine &TM,<br>
const BPFSubtarget &STI)<br>
: TargetLowering(TM) {<br>
@@ -182,16 +236,16 @@ SDValue BPFTargetLowering::LowerFormalAr<br>
InVals.push_back(ArgValue);<br>
}<br>
} else {<br>
- DiagnosticInfoUnsupported Err(<br>
- *MF.getFunction(), "defined with too many args", DL);<br>
+ DiagnosticInfoUnsupported Err(DL, *MF.getFunction(),<br>
+ "defined with too many args", SDValue());<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
}<br>
<br>
if (IsVarArg || MF.getFunction()->hasStructRetAttr()) {<br>
DiagnosticInfoUnsupported Err(<br>
- *MF.getFunction(),<br>
- "functions with VarArgs or StructRet are not supported", DL);<br>
+ DL, *MF.getFunction(),<br>
+ "functions with VarArgs or StructRet are not supported", SDValue());<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
<br>
@@ -231,8 +285,8 @@ SDValue BPFTargetLowering::LowerCall(Tar<br>
unsigned NumBytes = CCInfo.getNextStackOffset();<br>
<br>
if (Outs.size() >= 6) {<br>
- DiagnosticInfoUnsupported Err(*MF.getFunction(), "too many args to ",<br>
- CLI.DL, Callee);<br>
+ DiagnosticInfoUnsupported Err(CLI.DL, *MF.getFunction(),<br>
+ "too many args to ", Callee);<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
<br>
@@ -241,8 +295,8 @@ SDValue BPFTargetLowering::LowerCall(Tar<br>
if (!Flags.isByVal())<br>
continue;<br>
<br>
- DiagnosticInfoUnsupported Err(<br>
- *MF.getFunction(), "pass by value not supported ", CLI.DL, Callee);<br>
+ DiagnosticInfoUnsupported Err(CLI.DL, *MF.getFunction(),<br>
+ "pass by value not supported ", Callee);<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
<br>
@@ -344,8 +398,8 @@ BPFTargetLowering::LowerReturn(SDValue C<br>
CCState CCInfo(CallConv, IsVarArg, MF, RVLocs, *DAG.getContext());<br>
<br>
if (MF.getFunction()->getReturnType()->isAggregateType()) {<br>
- DiagnosticInfoUnsupported Err(<br>
- *MF.getFunction(), "only integer returns supported", DL);<br>
+ DiagnosticInfoUnsupported Err(DL, *MF.getFunction(),<br>
+ "only integer returns supported", SDValue());<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
<br>
@@ -389,8 +443,8 @@ SDValue BPFTargetLowering::LowerCallResu<br>
CCState CCInfo(CallConv, IsVarArg, MF, RVLocs, *DAG.getContext());<br>
<br>
if (Ins.size() >= 2) {<br>
- DiagnosticInfoUnsupported Err(*MF.getFunction(),<br>
- "only small returns supported", DL);<br>
+ DiagnosticInfoUnsupported Err(DL, *MF.getFunction(),<br>
+ "only small returns supported", SDValue());<br>
DAG.getContext()->diagnose(Err);<br>
}<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp Wed Jan 27 22:41:32 2016<br>
@@ -35,6 +35,61 @@ using namespace llvm;<br>
<br>
#define DEBUG_TYPE "wasm-lower"<br>
<br>
+namespace {<br>
+// Diagnostic information for unimplemented or unsupported feature reporting.<br>
+// TODO: This code is copied from BPF and AMDGPU; consider factoring it out<br>
+// and sharing code.<br>
+class DiagnosticInfoUnsupported final : public DiagnosticInfo {<br>
+private:<br>
+ // Debug location where this diagnostic is triggered.<br>
+ DebugLoc DLoc;<br>
+ const Twine &Description;<br>
+ const Function &Fn;<br>
+ SDValue Value;<br>
+<br>
+ static int KindID;<br>
+<br>
+ static int getKindID() {<br>
+ if (KindID == 0)<br>
+ KindID = llvm::getNextAvailablePluginDiagnosticKind();<br>
+ return KindID;<br>
+ }<br>
+<br>
+public:<br>
+ DiagnosticInfoUnsupported(SDLoc DLoc, const Function &Fn, const Twine &Desc,<br>
+ SDValue Value)<br>
+ : DiagnosticInfo(getKindID(), DS_Error), DLoc(DLoc.getDebugLoc()),<br>
+ Description(Desc), Fn(Fn), Value(Value) {}<br>
+<br>
+ void print(DiagnosticPrinter &DP) const override {<br>
+ std::string Str;<br>
+ raw_string_ostream OS(Str);<br>
+<br>
+ if (DLoc) {<br>
+ auto DIL = DLoc.get();<br>
+ StringRef Filename = DIL->getFilename();<br>
+ unsigned Line = DIL->getLine();<br>
+ unsigned Column = DIL->getColumn();<br>
+ OS << Filename << ':' << Line << ':' << Column << ' ';<br>
+ }<br>
+<br>
+ OS << "in function " << Fn.getName() << ' ' << *Fn.getFunctionType() << '\n'<br>
+ << Description;<br>
+ if (Value)<br>
+ Value->print(OS);<br>
+ OS << '\n';<br>
+ OS.flush();<br>
+ DP << Str;<br>
+ }<br>
+<br>
+ static bool classof(const DiagnosticInfo *DI) {<br>
+ return DI->getKind() == getKindID();<br>
+ }<br>
+};<br>
+<br>
+int DiagnosticInfoUnsupported::KindID = 0;<br>
+} // end anonymous namespace<br>
+<br>
WebAssemblyTargetLowering::WebAssemblyTargetLowering(<br>
const TargetMachine &TM, const WebAssemblySubtarget &STI)<br>
: TargetLowering(TM), Subtarget(&STI) {<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/addrspacecast.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,6 +1,6 @@<br>
; RUN: not llc -O0 -march=amdgcn -mcpu=bonaire -mattr=-promote-alloca < %s 2>&1 | FileCheck -check-prefix=ERROR %s<br>
<br>
-; ERROR: addrspacecast not implemented<br>
+; ERROR: unsupported addrspacecast not implemented<br>
<br>
; XUN: llc -O0 -march=amdgcn -mcpu=bonaire -mattr=-promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-NO-PROMOTE %s<br>
; XUN: llc -O0 -march=amdgcn -mcpu=bonaire -mattr=+promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-PROMOTE %s<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/call.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/call.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/call.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/call.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/call.ll Wed Jan 27 22:41:32 2016<br>
@@ -2,7 +2,7 @@<br>
; RUN: not llc -march=amdgcn -mcpu=tonga -verify-machineinstrs< %s 2>&1 | FileCheck %s<br>
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function test_call_external{{.*}}: unsupported call to function external_function<br>
+; CHECK: error: unsupported call to function external_function in test_call_external<br>
<br>
<br>
declare i32 @external_function(i32) nounwind<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/dynamic_stackalloc.ll Wed Jan 27 22:41:32 2016<br>
@@ -2,7 +2,7 @@<br>
; RUN: not llc -march=amdgcn -mcpu=tahiti -mattr=-promote-alloca -verify-machineinstrs < %s 2>&1 | FileCheck %s<br>
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca<br>
+; CHECK: error: unsupported dynamic alloca in test_dynamic_stackalloc<br>
<br>
define void @test_dynamic_stackalloc(i32 addrspace(1)* %out, i32 %n) {<br>
%alloca = alloca i32, i32 %n<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/global-zero-initializer.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,7 +1,7 @@<br>
; RUN: not llc -march=amdgcn -mcpu=SI < %s 2>&1 | FileCheck %s<br>
; RUN: not llc -march=amdgcn -mcpu=tonga < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function load_init_global_global{{.*}}: unsupported initializer for address space<br>
+; CHECK: error: unsupported initializer for address space in load_init_global_global<br>
<br>
@lds = addrspace(1) global [256 x i32] zeroinitializer<br>
<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/lds-initializer.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,7 +1,7 @@<br>
; RUN: not llc -march=amdgcn -mcpu=SI < %s 2>&1 | FileCheck %s<br>
; RUN: not llc -march=amdgcn -mcpu=tonga < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function load_init_lds_global{{.*}}: unsupported initializer for address space<br>
+; CHECK: error: unsupported initializer for address space in load_init_lds_global<br>
<br>
@lds = addrspace(3) global [8 x i32] [i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8]<br>
<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/lds-zero-initializer.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,7 +1,7 @@<br>
; RUN: not llc -march=amdgcn -mcpu=SI < %s 2>&1 | FileCheck %s<br>
; RUN: not llc -march=amdgcn -mcpu=tonga < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function load_zeroinit_lds_global{{.*}}: unsupported initializer for address space<br>
+; CHECK: error: unsupported initializer for address space in load_zeroinit_lds_global<br>
<br>
@lds = addrspace(3) global [256 x i32] zeroinitializer<br>
<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,7 +1,7 @@<br>
; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s<br>
; RUN: not llc -mtriple=amdgcn-unknown-unknown -mcpu=kaveri -verify-machineinstrs < %s 2>&1 | FileCheck -check-prefix=ERROR %s<br>
<br>
-; ERROR: in function test{{.*}}: unsupported hsa intrinsic without hsa target<br>
+; ERROR: error: unsupported hsa intrinsic without hsa target in test<br>
<br>
; GCN-LABEL: {{^}}test:<br>
; GCN: enable_sgpr_dispatch_ptr = 1<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll Wed Jan 27 22:41:32 2016<br>
@@ -1,6 +1,6 @@<br>
; RUN: not llc -march=amdgcn -mtriple=amdgcn-unknown-amdhsa < %s 2>&1 | FileCheck %s<br>
<br>
-; CHECK: in function pixel_s{{.*}}: unsupported non-compute shaders with HSA<br>
+; CHECK: error: unsupported non-compute shaders with HSA in pixel_shader<br>
define void @pixel_shader() #0 {<br>
ret void<br>
}<br>
<br>
Modified: llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll?rev=259016&r1=259015&r2=259016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll?rev=259016&r1=259015&r2=259016&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll Wed Jan 27 22:41:32 2016<br>
@@ -6,7 +6,7 @@<br>
declare void @foo(float*) #0<br>
declare void @foo.varargs(...) #0<br>
<br>
-; CHECK: in function crash_call_constexpr_cast{{.*}}: unsupported call to function foo<br>
+; CHECK: error: unsupported call to function foo in crash_call_constexpr_cast<br>
define void @crash_call_constexpr_cast() #0 {<br>
%alloca = alloca i32<br>
call void bitcast (void (float*)* @foo to void (i32*)*)(i32* %alloca) #0<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>