The LLVMContext gains a new runtime check (seeLLVMContext::discardValueNames()) that can be set to discard Value names(other than GlobalValue). This is intended to be used in>
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9requires CMake 3.4.3 or later to build. For information about using CMakeplease see the documentation on Building LLVM with CMake. For information about the CMakelanguage there is also a CMake Primer document available.
C API functions LLVMParseBitcode,LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext andLLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has beenremoved (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecatedin favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor ofthe new LLVMAttributeRef API. The deprecated functions areLLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr,LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute,LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute,LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns aniterator to the next instruction instead of void. Targets that previouslydid MBB.erase(I); return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets willneed to be updated to replace the argument node and remove any dead nodes incases where they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis.It should provide higher-quality results than MemDep, and be algorithmicallyfaster than MemDep. Currently, GVNHoist (which is off by default) makes use ofMemorySSA.
The minimum density for lowering switches with jump tables has been reducedfrom 40% to 10% for functions which are not marked optsize (that is,compiled with -Os).