From f59a1db8b792b56d81f65cdeb740afba529dfd13 Mon Sep 17 00:00:00 2001 From: Anton Mitrokhin Date: Wed, 30 Jul 2014 13:57:06 +0400 Subject: [PATCH] fixed 3.6 llvm build in type.cpp --- alloy.py | 15 ++++++++++----- docs/ReleaseNotes.txt | 3 ++- type.cpp | 7 ++++++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/alloy.py b/alloy.py index 6fcfca96..4adb060d 100755 --- a/alloy.py +++ b/alloy.py @@ -111,6 +111,9 @@ def build_LLVM(version_LLVM, revision, folder, tarball, debug, selfbuild, extra, FOLDER_NAME=version_LLVM if version_LLVM == "trunk": SVN_PATH="trunk" + if version_LLVM == "3.5": + SVN_PATH="tags/RELEASE_35/rc1" + version_LLVM = "3_5" if version_LLVM == "3.4": SVN_PATH="tags/RELEASE_34/dot2-final" version_LLVM = "3_4" @@ -351,8 +354,10 @@ def build_ispc(version_LLVM, make): temp = "3_3" if version_LLVM == "3.4": temp = "3_4" - if version_LLVM == "trunk": + if version_LLVM == "3.5": temp = "3_5" + if version_LLVM == "trunk": + temp = "3_6" os.environ["LLVM_VERSION"] = "LLVM_" + temp try_do_LLVM("clean ISPC for building", "msbuild ispc.vcxproj /t:clean", True) try_do_LLVM("build ISPC with LLVM version " + version_LLVM + " ", "msbuild ispc.vcxproj /V:m /p:Platform=Win32 /p:Configuration=Release /t:rebuild", True) @@ -454,7 +459,7 @@ def validation_run(only, only_targets, reference_branch, number, notify, update, archs.append("x86-64") if "native" in only: sde_targets_t = [] - for i in ["3.1", "3.2", "3.3", "3.4", "trunk"]: + for i in ["3.1", "3.2", "3.3", "3.4", "3.5", "trunk"]: if i in only: LLVM.append(i) if "current" in only: @@ -707,7 +712,7 @@ def Main(): if os.environ.get("SMTP_ISPC") == None: error("you have no SMTP_ISPC in your environment for option notify", 1) if options.only != "": - test_only_r = " 3.1 3.2 3.3 3.4 trunk current build stability performance x86 x86-64 -O0 -O2 native " + test_only_r = " 3.1 3.2 3.3 3.4 3.5 trunk current build stability performance x86 x86-64 -O0 -O2 native " test_only = options.only.split(" ") for iterator in test_only: if not (" " + iterator + " " in test_only_r): @@ -816,7 +821,7 @@ if __name__ == '__main__': llvm_group = OptionGroup(parser, "Options for building LLVM", "These options must be used with -b option.") llvm_group.add_option('--version', dest='version', - help='version of llvm to build: 3.1 3.2 3.3 3.4 trunk. Default: trunk', default="trunk") + help='version of llvm to build: 3.1 3.2 3.3 3.4 3.5 trunk. Default: trunk', default="trunk") llvm_group.add_option('--revision', dest='revision', help='revision of llvm to build in format r172870', default="") llvm_group.add_option('--debug', dest='debug', @@ -851,7 +856,7 @@ if __name__ == '__main__': run_group.add_option('--only', dest='only', help='set types of tests. Possible values:\n' + '-O0, -O2, x86, x86-64, stability (test only stability), performance (test only performance)\n' + - 'build (only build with different LLVM), 3.1, 3.2, 3.3, 3.4, trunk, native (do not use SDE), current (do not rebuild ISPC).', + 'build (only build with different LLVM), 3.1, 3.2, 3.3, 3.4 3.5, trunk, native (do not use SDE), current (do not rebuild ISPC).', default="") run_group.add_option('--perf_LLVM', dest='perf_llvm', help='compare LLVM 3.3 with "--compare-with", default trunk', default=False, action='store_true') diff --git a/docs/ReleaseNotes.txt b/docs/ReleaseNotes.txt index ef8cf6f8..7b76dd4c 100644 --- a/docs/ReleaseNotes.txt +++ b/docs/ReleaseNotes.txt @@ -77,7 +77,8 @@ If you are not using pre-built binaries, you may notice the following changes: This is a preferred way to build LLVM for ISPC, as all required patches for better performance and stability will automatically apply. -* LLVM 3.5 (current trunk) is supported. +* LLVM 3.5 is supported. +* LLVM 3.6 (current trunk) is supported. There are also multiple fixes for better performance and stability, most notable are: diff --git a/type.cpp b/type.cpp index 57d448d8..9579ebba 100644 --- a/type.cpp +++ b/type.cpp @@ -2994,9 +2994,14 @@ FunctionType::GetDIType(llvm::DIDescriptor scope) const { #endif retArgTypes.push_back(t->GetDIType(scope)); } - +#if defined(LLVM_3_6) + llvm::DITypeArray retArgTypesArray = + m->diBuilder->getOrCreateTypeArray(llvm::ArrayRef(retArgTypes)); +#else llvm::DIArray retArgTypesArray = m->diBuilder->getOrCreateArray(llvm::ArrayRef(retArgTypes)); +#endif + llvm::DIType diType = // FIXME: DIFile m->diBuilder->createSubroutineType(llvm::DIFile(), retArgTypesArray);