3472 Commits

Author SHA1 Message Date
Philippe Canal
ce71bc9a5b In AutoloadingVisitor, record and use the fact on whether we are traversing an autolading decl or not.
This affects whether we need to remove an inherit default or not (and vice et versa).
2016-11-14 03:14:37 +01:00
Philippe Canal
1b59773c18 In AutoloadingVisitor loop only from most recent decl to the autoloading decl.
I.e. only look at those that could have been affected directly by the content of the autoloading decl
2016-11-14 03:14:37 +01:00
Philippe Canal
7eb4413288 Revert 0547f09, i.e. re-extend default argument removal to more decls 2016-11-14 03:14:37 +01:00
Philippe Canal
b126607e4a Consider a decl an autoloading decl only if the annotation is not inherited 2016-11-14 03:14:37 +01:00
Philippe Canal
d066ad6061 Add test of the case where the definition are indirectly included 2016-11-14 03:14:37 +01:00
Philippe Canal
1bd0822562 Test for ROOT-8443
Test clean-up of forward decl with or without template default parameter and user forward decl
also with or without template default parameter and located before or after the inclusion
of the annotated/dictionary forward decls.
2016-11-14 03:14:37 +01:00
Philippe Canal
6920d6d460 Add cling version of test for ROOT-7037 2016-11-14 03:14:37 +01:00
Pere Mato
ac05814edc Ensure that cling-compiledata.h is not taken from sources in preference 2016-11-11 10:29:42 +01:00
Axel Naumann
c9ad1f4a41 Only skipToEOF if needed. 2016-11-10 18:14:07 +01:00
Axel Naumann
87a972e570 Improve consistency for cling -x cuda. 2016-11-09 17:59:49 +01:00
Philippe Canal
a8bce0d416 Temporarily disable the default argument removal 2016-11-09 07:44:04 +01:00
Philippe Canal
8b1afa0e6b In AutoloadingVisitor only unload enum decl that comes from the rootmap file 2016-11-08 22:59:56 +01:00
Philippe Canal
7c9379ac93 Refactor in RequireCompleteDeclContext the 'Update the DeclContext used for lookup to point to the definition.'
This superseeds 4fa2f7a38e37303b3bb5a9ba01d762122e8d9814, 2b4de2603a086162f89fd5eb16aa0d5fddac8a6e and 384f6eabcd2d02512b942215d7ae52ff40954027
2016-11-08 22:59:56 +01:00
Philippe Canal
bcf5b6f182 Remove traces of the default template argument in all the decl in the decl chains.
Fix part 1 of ROOT-8443
2016-11-08 20:14:31 +01:00
Axel Naumann
f5fe133410 Add clangParse needed by ParserStateRAII. 2016-11-08 08:44:16 +01:00
Axel Naumann
87585f78e0 Move -ldl to Utils, now that PlatformXYZ git moved. 2016-11-08 08:44:16 +01:00
Axel Naumann
58a6a94804 In the RAII ctor, set private Parser fields to default values. 2016-11-07 15:29:52 +01:00
Axel Naumann
3847e2560d Split ParserStateRAII into Utils/. We need it in other places. 2016-11-07 15:29:52 +01:00
David Abdurachmanov
432c91f534 Set code model to Large for PowerPC64 (aka ppc64le)
This is needed because TOC and text sections can be more than 2GB
apart. LLVM SectionMemoryManager is not aware of the design limits of
ppc64le while allocating memory for JIT'ed sections. DSO limit was set
to 2GB by design. While running CMSSW ROOT/Cling puts TOC and .text.func
~2.7GB apart in VA space. Usually was triggered by TFormula in CMSSW.

IBM has modified global entry function prologue. TOC is now stored in
64-bit value before global entry to allow addressing beyond 2GB.
This was merged to Clang months ago, but is only applicable to large
code model.

Later IBM propagated this further:

- binutils patches are here:
https://sourceware.org/ml/binutils/2015-11/msg00232.html
https://sourceware.org/ml/binutils/2015-11/msg00233.html
and will be available with binutils 2.26

- GCC patch is here:
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00355.html
and will be available with GCC 6.0.

- LLVM patch is here:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160111/324454.html
and will be available with LLVM 3.8.

- Kernel patches (module loader etc.) are here:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a61674bdfc7c2bf909c4010699607b62b69b7bec
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2e50c4bef77511b42cc226865d6bc568fa7f8769
and will be available with Linux 4.5.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
2016-11-07 13:02:51 +01:00
Axel Naumann
3711cd0658 Unloaded Decls are now put back into CodeGen, no need to mark used. 2016-11-07 13:02:51 +01:00
Axel Naumann
4cec420bf1 Unloaded declarations are now put back into CodeGen; no need to mark them used. 2016-11-07 13:02:51 +01:00
Axel Naumann
6cdabe2aa1 Provide directory (and not dir+name) in _path, for $PATH comparison. 2016-11-01 18:23:45 +01:00
Axel Naumann
a3ed23c7ec Revert "Missing realpath on compiler directory; should fix CMS."
This was a red herring.
This reverts commit b33080d18d605ef33013fabc59314729fd48d295.
2016-11-01 18:23:45 +01:00
Axel Naumann
4793a14f07 Missing realpath on compiler directory; should fix CMS.
(cherry picked from commit 812c8b6dab03b66b9b17d0c180f6da15a8810cd0)
2016-11-01 18:23:45 +01:00
erlanger
293931e1d5 Try APPLE instead of XCODE
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
erlanger
c262858fb2 XCODE fix for unresolved symbols
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
erlanger
84b96e5980 Include all symbols from interpreter in jupyter shared lib
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
Axel Naumann
64100180b6 Do not crash if no executor is alife. 2016-10-20 18:22:25 +02:00
Axel Naumann
8dcf1c8b46 Revert "Implement IsMemoryValid natively on OSX. 250% faster!"
This reverts commit 09d1e4d4b4246e3c738379188e1780522ba70ccf.
It is actually much much slower on MacOS 10.11 and 10.12.
2016-10-20 11:52:41 +02:00
Roman Zulak
74cb06a22f Fixes issues where symbols can be improperly aligned for llvm::PointerIntPair Use std::pair instead of llvm::PointerIntPair.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-19 13:54:07 +02:00
Roman Zulak
3e765d8ac9 Add platform::POpen.
Fixes ClangInternalState::differentContent showing no differences when there
actually are, just less than 128 characters in length.

Invoking diff on Windows with --ignore-matching-lines arguments will fail because the command string is too long. Using Windows APIs to launch the process succeeds.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
182954b87f Windows: Match UCRT Version from build environment if possible.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
3acc9e577d OSX: Use MAC_OS_X_VERSION_MAX_ALLOWED to infer SDK compiled with.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
508039082b OSX: Actually choose highest SDK version and fallback to lexical sort.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
3d83bd70df Cleanup utils::SplitPaths.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
4c97ee61c6 Log progress adding environmental library paths.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
37f86f9a4a Add platform::kEnvDelim to avoid having #ifdefs for calls to SplitPaths.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:22 +02:00
Roman Zulak
f5633ed248 Use std::string for IncrementalJIT symbol lookup. Many callers already have a string, most functions called want them, and it's cheaper to construct an llvm::StringRef than a std::string when needed.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
8f44fe40c5 Remove unnecessary StringRefs and strlen calls to construct them.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
c3869d00cc Windows: Fix looking up data symbols in process' libraries. Consolidate llvm::DynamicLibrary usage into IncrementalJIT.cpp. Add comments describing larger issue.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
2bc6a5c66b Move windows::LookupSymbol to platform::DLSym
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
0cf6aec6a7 Lookup Windows functions in process.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
b2ab0a55e0 Make GetVisualStudioVersionCompiledWith private, and error out for untested versions.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
71eb51a1d2 Windows: Make CheckABICompatibility check a header dependent constant.
Previously the check was for a standard installation of VisualStudio.
That check will have likely passed already, but the user could have
forced the include paths making the prior check somewhat meaningless.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
1dadbe2495 Refactor CheckABICompatibility into a more legible version. Standardize error message. Return whether the ABI matched or not.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
6c2ab5c9d2 Reformat includes and remove Windows.h dependency.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
2436242710 Fix windows::GetSystemRegistryString to get values of immediate children.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
1e3509c5c4 Implement IsMemoryValid natively on OSX. 250% faster!
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
caa8628784 Merge pointer checking statics into one object. One thread barrier is better than two.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00
Roman Zulak
2eae759f98 Add platform::IsMemoryValid.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-18 17:53:21 +02:00