Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 336388 Details for
Bug 453420
media-libs/opengtl with sys-devel/llvm-3.2 fix
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
LLVM 3.2 patch
opengtl-llvm-3.2.patch (text/plain), 12.25 KB, created by
Reuben Martin
on 2013-01-21 21:43:10 UTC
(
hide
)
Description:
LLVM 3.2 patch
Filename:
MIME Type:
Creator:
Reuben Martin
Created:
2013-01-21 21:43:10 UTC
Size:
12.25 KB
patch
obsolete
>diff -r 095d2f074f89ba34bec0c8d96e54a048ce24ff93 -r 06cdd5943d480e38aec7de30acc29d07acceaead OpenGTL/GTLCore/Debug.cpp >--- a/OpenGTL/GTLCore/Debug.cpp Thu Jun 07 21:10:01 2012 +1000 >+++ b/OpenGTL/GTLCore/Debug.cpp Sat Dec 29 12:25:51 2012 +0100 >@@ -25,11 +25,7 @@ > #include <llvm/Module.h> > #include <llvm/Value.h> > #include <llvm/Type.h> >-#ifdef LLVM_27_OR_28 >-#include <llvm/System/Path.h> >-#else > #include <llvm/Support/Path.h> >-#endif > #include <llvm/Support/raw_ostream.h> > > #include "Function.h" >@@ -450,12 +446,17 @@ > #endif > > namespace llvm { >+// Printing of types. >+static inline raw_ostream &operator<<(raw_ostream &OS, const Type &T) { >+ T.print(OS); >+ return OS; >+} > #define MAKE_OPERATOR(_type_) \ > std::ostream& operator<< (std::ostream& ostr, const llvm::_type_& val) \ > { \ > std::string str; \ > llvm::raw_string_ostream rs(str); \ >- rs << &val; \ >+ rs << val; \ > rs.flush(); \ > ostr << str; \ > return ostr; \ >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c CMakeLists.txt >--- a/CMakeLists.txt Sat Dec 29 12:25:51 2012 +0100 >+++ b/CMakeLists.txt Sat Dec 29 12:27:12 2012 +0100 >@@ -78,8 +78,8 @@ > FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "native bitwriter linker bitreader jit interpreter support ipo" LLVM_LIBS LLVM_NATIVE_OBJECTS ) > endif(MSVC) > >-if( NOT MSVC AND NOT (LLVM_VERSION STREQUAL "3.1" OR LLVM_VERSION STREQUAL "3.0" ) ) # There is no way with MSVC to know the llvm version >- message(FATAL_ERROR "LLVM 3.0 or 3.1 is required.") >+if( NOT MSVC AND NOT (LLVM_VERSION STREQUAL "3.1" OR LLVM_VERSION STREQUAL "3.0" OR LLVM_VERSION STREQUAL "3.2svn" OR LLVM_VERSION STREQUAL "3.2" ) ) # There is no way with MSVC to know the llvm version >+ message(FATAL_ERROR "LLVM 3.0 or 3.1 or 3.2 is required.") > endif() > > if(MSVC) >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenCTL/OpenCTL/Program.cpp >--- a/OpenCTL/OpenCTL/Program.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenCTL/OpenCTL/Program.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -29,7 +29,6 @@ > #include <llvm/PassManager.h> > #include <llvm/Analysis/LoopPass.h> > #include <llvm/Analysis/Verifier.h> >-#include <llvm/Target/TargetData.h> > #include <llvm/GlobalVariable.h> > > // GTLCore >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenGTL/GTLCore/AST/Statement.cpp >--- a/OpenGTL/GTLCore/AST/Statement.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenGTL/GTLCore/AST/Statement.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -287,7 +287,7 @@ > std::vector<llvm::Type*> params; > params.push_back( llvm::Type::getInt32Ty(_context.llvmContext())); > llvm::FunctionType* definitionType = llvm::FunctionType::get( llvm::Type::getVoidTy(_context.llvmContext()), params, true ); >- llvm::Function* func = dynamic_cast<llvm::Function*>( _context.llvmModule()->getOrInsertFunction("print", definitionType)); >+ llvm::Function* func = llvm::dyn_cast<llvm::Function>( _context.llvmModule()->getOrInsertFunction("print", definitionType)); > > std::vector<llvm::Value*> values; > values.push_back( _context.codeGenerator()->integerToConstant( _context.llvmContext(), gtl_uint32(m_expressions.size()) )); >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenGTL/GTLCore/Function_p.cpp >--- a/OpenGTL/GTLCore/Function_p.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenGTL/GTLCore/Function_p.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -77,7 +77,7 @@ > const llvm::Function* func = _functionToCopy->d->data->function(); > llvm::FunctionType *FTy = > llvm::cast<llvm::FunctionType>(llvm::cast<llvm::PointerType>(func->getType())->getElementType()); >- llvm::Function* function = dynamic_cast<llvm::Function*>( _llvmModule->getOrInsertFunction( (const std::string&)_symbolName, FTy) ); >+ llvm::Function* function = llvm::dyn_cast<llvm::Function>( _llvmModule->getOrInsertFunction( (const std::string&)_symbolName, FTy) ); > GTLCore::Function::Data* data = new GTLCore::Function::Data( _functionToCopy->parameters(), _functionToCopy->d->data->minimumParameters() ); > data->setFunction( function ); > data->setModule( _module ); >@@ -137,7 +137,7 @@ > } > llvmArguments.push_back( type ); > } >- llvm::Function* function = dynamic_cast<llvm::Function*>( _llvmModule->getOrInsertFunction( (const std::string&)_symbolName, llvm::FunctionType::get( retType->d->asArgumentType(_context), llvmArguments, false ) ) ); >+ llvm::Function* function = llvm::dyn_cast<llvm::Function>( _llvmModule->getOrInsertFunction( (const std::string&)_symbolName, llvm::FunctionType::get( retType->d->asArgumentType(_context), llvmArguments, false ) ) ); > GTLCore::Function::Data* data = new GTLCore::Function::Data(arguments, minimumParameters == -1 ? arguments.size() : minimumParameters ); > data->setFunction( function ); > data->setModule( _module ); >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp >--- a/OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -209,16 +209,16 @@ > if( constant->getType() == llvm::Type::getInt32Ty(constant->getContext() ) ) > { > GTL_ASSERT(_type == Type::Integer32 or _type == Type::UnsignedInteger32 ); >- return gtl_int32(dynamic_cast<llvm::ConstantInt* >( constant )->getValue().getLimitedValue()); >+ return gtl_int32(llvm::dyn_cast<llvm::ConstantInt>( constant )->getValue().getLimitedValue()); > } else if ( constant->getType() == llvm::Type::getFloatTy(constant->getContext()) ) > { > GTL_ASSERT(_type == Type::Float32 or _type == Type::Float16 ); >- return dynamic_cast<llvm::ConstantFP* >( constant )->getValueAPF().convertToFloat(); >+ return llvm::dyn_cast<llvm::ConstantFP>( constant )->getValueAPF().convertToFloat(); > } else if ( constant->getType() == llvm::Type::getInt1Ty(constant->getContext()) ) { > GTL_ASSERT(_type == Type::Boolean ); >- return dynamic_cast<llvm::ConstantInt* >( constant )->getValue().getLimitedValue() != 0; >+ return llvm::dyn_cast<llvm::ConstantInt>( constant )->getValue().getLimitedValue() != 0; > } else if( constant->getType()->getTypeID() == llvm::Type::StructTyID ) { >- llvm::ConstantStruct* cs = dynamic_cast<llvm::ConstantStruct* >( constant ); >+ llvm::ConstantStruct* cs = llvm::dyn_cast<llvm::ConstantStruct>( constant ); > switch(_type->dataType()) > { > case Type::STRUCTURE: >@@ -235,12 +235,12 @@ > { > GTL_ASSERT( cs->getNumOperands() == 2 + STRUCT_FIRST_ELEMENT ); > GTL_ASSERT( cs->getOperand(1)->getType() == llvm::Type::getInt32Ty(constant->getContext()) ); >- std::size_t sizeArray = std::size_t(dynamic_cast<llvm::ConstantInt* >( cs->getOperand(1))->getValue().getLimitedValue()); >- llvm::ConstantExpr* expr = dynamic_cast<llvm::ConstantExpr*>(cs->getOperand(2)); >+ std::size_t sizeArray = std::size_t(llvm::dyn_cast<llvm::ConstantInt>( cs->getOperand(1))->getValue().getLimitedValue()); >+ llvm::ConstantExpr* expr = llvm::dyn_cast<llvm::ConstantExpr>(cs->getOperand(2)); > GTL_ASSERT(expr); >- llvm::GlobalVariable* arrayGV = dynamic_cast<llvm::GlobalVariable*>(expr->getOperand(0)); >+ llvm::GlobalVariable* arrayGV = llvm::dyn_cast<llvm::GlobalVariable>(expr->getOperand(0)); > GTL_ASSERT(arrayGV); >- llvm::ConstantArray* array = dynamic_cast<llvm::ConstantArray*>(arrayGV->getInitializer()); >+ llvm::ConstantArray* array = llvm::dyn_cast<llvm::ConstantArray>(arrayGV->getInitializer()); > GTL_ASSERT(array); > GTL_ASSERT(array->getNumOperands() == sizeArray); > std::vector< Value > values; >@@ -254,7 +254,7 @@ > GTL_ABORT("Unsupported type"); > } > } else if( constant->getType()->getTypeID() == llvm::Type::PointerTyID) { >- return constantToValue( dynamic_cast<llvm::GlobalVariable*>(constant)->getInitializer() , _type); >+ return constantToValue( llvm::dyn_cast<llvm::GlobalVariable>(constant)->getInitializer() , _type); > } else { > GTL_ABORT("Unimplemented"); > } >@@ -316,7 +316,7 @@ > llvm::Value* CodeGenerator::convertValueTo(llvm::BasicBlock* _currentBlock, llvm::Value* _value, const Type* _valueType, const Type* _targetType) > { > GTL_DEBUG("Convert value " << *_value << " from " << *_valueType << " to " << *_targetType); >- llvm::Constant* _constant = dynamic_cast<llvm::Constant*>(_value); >+ llvm::Constant* _constant = llvm::dyn_cast<llvm::Constant>(_value); > if(_constant) > { > return convertConstantTo( _constant, _valueType, _targetType); >@@ -386,7 +386,7 @@ > { > std::vector< llvm::Type*> llvmArguments; > llvmArguments.push_back( llvm::Type::getFloatTy(_generationContext.llvmContext()) ); >- llvm::Function* func = dynamic_cast<llvm::Function*>( _generationContext.llvmModule()->getOrInsertFunction( "_Z10float2halff", >+ llvm::Function* func = llvm::dyn_cast<llvm::Function>( _generationContext.llvmModule()->getOrInsertFunction( "_Z10float2halff", > llvm::FunctionType::get( llvm::Type::getInt16Ty(_generationContext.llvmContext()) , llvmArguments, false ) ) ); > std::vector<llvm::Value*> convertedParams; > convertedParams.push_back( convertValueTo( currentBlock, value, _valueType, Type::Float32 ) ); >@@ -397,7 +397,7 @@ > { > std::vector<llvm::Type*> llvmArguments; > llvmArguments.push_back( llvm::Type::getInt16Ty(_generationContext.llvmContext()) ); >- llvm::Function* func = dynamic_cast<llvm::Function*>( _generationContext.llvmModule()->getOrInsertFunction( "_Z10half2floatt", >+ llvm::Function* func = llvm::dyn_cast<llvm::Function>( _generationContext.llvmModule()->getOrInsertFunction( "_Z10half2floatt", > llvm::FunctionType::get( llvm::Type::getFloatTy(_generationContext.llvmContext()) , llvmArguments, false ) ) ); > std::vector<llvm::Value*> convertedParams; > convertedParams.push_back( convertValueTo( currentBlock, value, Type::Float16, Type::Integer16 ) ); >@@ -461,14 +461,14 @@ > { > GTL_DEBUG(*constant); > GTL_DEBUG(*constant->getType()); >- llvm::ConstantStruct* arrayConstant = dynamic_cast<llvm::ConstantStruct*>(constant->getOperand(0)); >+ llvm::ConstantStruct* arrayConstant = llvm::dyn_cast<llvm::ConstantStruct>(constant->getOperand(0)); > GTL_ASSERT(arrayConstant); > GTL_ASSERT(constantType->dataType() == Type::ARRAY ); > GTL_ASSERT(type->dataType() == Type::VECTOR ); > GTL_ASSERT(arrayConstant->getNumOperands() == 3 ); > llvm::Constant* values = llvm::cast<llvm::Constant>(llvm::cast<llvm::Constant>(arrayConstant->getOperand(2)->getOperand(0))->getOperand(0)); > GTL_DEBUG(*values); >- GTL_ASSERT(dynamic_cast<llvm::ConstantArray*>(values) ); >+ GTL_ASSERT(llvm::dyn_cast<llvm::ConstantArray>(values) ); > std::vector<llvm::Constant*> constants; > for(unsigned int i = 0; i < values->getNumOperands(); ++i ) > { >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp >--- a/OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -108,7 +108,7 @@ > > llvm::Constant* ExpressionResult::constant() const > { >- GTL_ASSERT( dynamic_cast<llvm::Constant*>(d->valueOrConstant.value)); >+ GTL_ASSERT( llvm::dyn_cast<llvm::Constant>(d->valueOrConstant.value)); > if(d->isConstant) return d->valueOrConstant.constant; > return 0; > } >diff -r 06cdd5943d480e38aec7de30acc29d07acceaead -r e150672a54adaa0f09ff123a9c5b8973fe399e6c OpenGTL/GTLCore/ModuleData_p.cpp >--- a/OpenGTL/GTLCore/ModuleData_p.cpp Sat Dec 29 12:25:51 2012 +0100 >+++ b/OpenGTL/GTLCore/ModuleData_p.cpp Sat Dec 29 12:27:12 2012 +0100 >@@ -23,7 +23,6 @@ > > #include <llvm/Module.h> > #include <llvm/PassManager.h> >-#include <llvm/Target/TargetData.h> > #include <llvm/Target/TargetMachine.h> > #include <llvm/Analysis/Verifier.h> > #include <llvm/Transforms/Utils/Cloning.h> >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 453420
: 336388