mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-24 21:14:56 +00:00
de262fecd2
This reapplies r197438 and fixes the link-time circular dependency between IR and Support. The fix consists in moving the diagnostic support into IR. The patch adds a new LLVMContext::diagnose that can be used to communicate to the front-end, if any, that something of interest happened. The diagnostics are supported by a new abstraction, the DiagnosticInfo class. The base class contains the following information: - The kind of the report: What this is about. - The severity of the report: How bad this is. This patch also adds 2 classes: - DiagnosticInfoInlineAsm: For inline asm reporting. Basically, this diagnostic will be used to switch to the new diagnostic API for LLVMContext::emitError. - DiagnosticStackSize: For stack size reporting. Comes as a replacement of the hard coded warning in PEI. This patch also features dynamic diagnostic identifiers. In other words plugins can use this infrastructure for their own diagnostics (for more details, see getNextAvailablePluginDiagnosticKind). This patch introduces a new DiagnosticHandlerTy and a new DiagnosticContext in the LLVMContext that should be set by the front-end to be able to map these diagnostics in its own system. http://llvm-reviews.chandlerc.com/D2376 <rdar://problem/15515174> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197508 91177308-0d34-0410-b5e6-96231b3b80d8
55 lines
1011 B
CMake
55 lines
1011 B
CMake
add_llvm_library(LLVMCore
|
|
AsmWriter.cpp
|
|
Attributes.cpp
|
|
AutoUpgrade.cpp
|
|
BasicBlock.cpp
|
|
ConstantFold.cpp
|
|
Constants.cpp
|
|
Core.cpp
|
|
DiagnosticInfo.cpp
|
|
DiagnosticPrinter.cpp
|
|
DIBuilder.cpp
|
|
DataLayout.cpp
|
|
DebugInfo.cpp
|
|
DebugLoc.cpp
|
|
Dominators.cpp
|
|
Function.cpp
|
|
GCOV.cpp
|
|
GVMaterializer.cpp
|
|
Globals.cpp
|
|
IRBuilder.cpp
|
|
InlineAsm.cpp
|
|
Instruction.cpp
|
|
Instructions.cpp
|
|
IntrinsicInst.cpp
|
|
LLVMContext.cpp
|
|
LLVMContextImpl.cpp
|
|
LeakDetector.cpp
|
|
LegacyPassManager.cpp
|
|
Metadata.cpp
|
|
Module.cpp
|
|
Pass.cpp
|
|
PassManager.cpp
|
|
PassRegistry.cpp
|
|
PrintModulePass.cpp
|
|
Type.cpp
|
|
TypeFinder.cpp
|
|
Use.cpp
|
|
User.cpp
|
|
Value.cpp
|
|
ValueSymbolTable.cpp
|
|
ValueTypes.cpp
|
|
Verifier.cpp
|
|
)
|
|
|
|
# Workaround: It takes over 20 minutes to compile with msvc10.
|
|
# FIXME: Suppressing optimizations to core libraries would not be good thing.
|
|
if( MSVC_VERSION LESS 1700 )
|
|
set_property(
|
|
SOURCE Function.cpp
|
|
PROPERTY COMPILE_FLAGS "/Og-"
|
|
)
|
|
endif()
|
|
|
|
add_dependencies(LLVMCore intrinsics_gen)
|