[Beignet] [PATCH] Fix compile error when use llvm-3.1 and InstVisitor.h path for llvm-3.3

Zhigang Gong zhigang.gong at linux.intel.com
Mon May 6 23:52:29 PDT 2013


Pushed, Thanks.

btw, I just noticed that you didn't put your sign off the patch. Please
add it next time. Thanks.

On Fri, May 03, 2013 at 11:56:24PM +0800, Chuanbo Weng wrote:
> DataLayout.h only exist in llvm-3.2. InstVisitor.h is also contained
> in 'llvm/Support/InstVisitor.h' directory in llvm-3.0, 3.1 and 3.2,
> but is contained in 'llvm/InstVisitor.h'. argID and PAL is needed in
> llvm-3.1. After applying this patch, beignet can build successfully
> and all test cases can run successfully using llvm-3.1.
> ---
>  backend/src/llvm/llvm_gen_backend.cpp |   11 ++++++++++-
>  backend/src/llvm/llvm_passes.cpp      |    4 +++-
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
> index 637e7be..733d91b 100644
> --- a/backend/src/llvm/llvm_gen_backend.cpp
> +++ b/backend/src/llvm/llvm_gen_backend.cpp
> @@ -102,13 +102,15 @@
>  #if !defined(LLVM_VERSION_MAJOR) || (LLVM_VERSION_MINOR == 1)
>  #include "llvm/Target/TargetData.h"
>  #endif
> +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR == 2)
>  #include "llvm/DataLayout.h"
> +#endif
>  #include "llvm/Support/CallSite.h"
>  #include "llvm/Support/CFG.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/FormattedStream.h"
>  #include "llvm/Support/GetElementPtrTypeIterator.h"
> -#ifdef LLVM_32
> +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR <= 2)
>  #include "llvm/Support/InstVisitor.h"
>  #else
>  #include "llvm/InstVisitor.h"
> @@ -869,7 +871,13 @@ namespace gbe
>        Function::arg_iterator I = F.arg_begin(), E = F.arg_end();
>  
>        // Insert a new register for each function argument
> +#if LLVM_VERSION_MINOR <= 1
> +      const AttrListPtr &PAL = F.getAttributes();
> +      uint32_t argID = 1; // Start at one actually
> +      for (; I != E; ++I, ++argID) {
> +#else
>        for (; I != E; ++I) {
> +#endif /* LLVM_VERSION_MINOR <= 1 */
>          const std::string &argName = I->getName().str();
>          Type *type = I->getType();
>          GBE_ASSERTM(isScalarType(type) == true,
> @@ -882,6 +890,7 @@ namespace gbe
>            // By value structure
>  #if LLVM_VERSION_MINOR <= 1
>            if (PAL.paramHasAttr(argID, Attribute::ByVal)) {
> +          //if(PAL.getParamAttributes(argID).hasAttribute(Attributes::ByVal)) {
>  #else
>            if (I->hasByValAttr()) {
>  #endif /* LLVM_VERSION_MINOR <= 1 */
> diff --git a/backend/src/llvm/llvm_passes.cpp b/backend/src/llvm/llvm_passes.cpp
> index 1a7a658..40c0e62 100644
> --- a/backend/src/llvm/llvm_passes.cpp
> +++ b/backend/src/llvm/llvm_passes.cpp
> @@ -61,13 +61,15 @@
>  #if !defined(LLVM_VERSION_MAJOR) || (LLVM_VERSION_MINOR == 1)
>  #include "llvm/Target/TargetData.h"
>  #endif
> +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR == 2)
>  #include "llvm/DataLayout.h"
> +#endif
>  #include "llvm/Support/CallSite.h"
>  #include "llvm/Support/CFG.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/FormattedStream.h"
>  #include "llvm/Support/GetElementPtrTypeIterator.h"
> -#ifdef LLVM_32
> +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR <= 2)
>  #include "llvm/Support/InstVisitor.h"
>  #else
>  #include "llvm/InstVisitor.h"
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list