FailedChanges

Summary

  1. cmake: Touch $GIT_DIR/logs/HEAD if it does not already exist. Apparently some git tools (such as "repo") may not create this file. Patch by Quentin Neill.
  2. Fix -Wpedantic about extra semicolons in CGStmtOpenMP.cpp
  3. Remove leaking UnknownPragmaHandlers right after we are done with them. The UnknownPragmaHandlers added by DoPrintPreprocessedInput conflict with the real PragmaHandlers from clang::Parser because they try to handle the same #pragma directives. This makes it impossible to use a Preprocessor (that was previously passed to DoPrintPreprocessedInput), as an Preprocessor for a clang::Parser instance which is what we currently do in cling. This patch removes the added UnknownPragmaHandler to avoid conflicts these conflicts and leave the PragmaHandlers of the Preprocessors in a the same state as before calling DoPrintPreprocessedInput. Patch by Raphael Isemann (D32486)!
  4. Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called. Summary: This was mostly affecting usage of the JIT, where storing the library handles in a set made iteration unordered/undefined. This lead to disagreement between the JIT and native code as to what the address and implementation of particularly on Windows with stdlib functions: JIT: putenv_s("TEST", "VALUE") // called msvcrt.dll, putenv_s JIT: getenv("TEST") -> "VALUE" // called msvcrt.dll, getenv Native: getenv("TEST") -> NULL // called ucrt.dll, getenv Also fixed is the issue of DynamicLibrary::getPermanentLibrary(0,0) on Windows not giving priority to the process' symbols as it did on Unix. Reviewers: chapuni, v.g.vassilev, lhames Reviewed By: lhames Subscribers: danalbert, srhines, mgorny, vsk, llvm-commits Differential Revision: https://reviews.llvm.org/D30107
  5. [PartialInlining]: Improve partial inlining to handle complex conditions Differential Revision: http://reviews.llvm.org/D32249
Revision 301565 by pcc:
cmake: Touch $GIT_DIR/logs/HEAD if it does not already exist.

Apparently some git tools (such as "repo") may not create this file.
Patch by Quentin Neill.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/CMakeLists.txt (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/CMakeLists.txt
Revision 301564 by hans:
Fix -Wpedantic about extra semicolons in CGStmtOpenMP.cpp
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp
Revision 301563 by vvassilev:
Remove leaking UnknownPragmaHandlers right after we are done with them.

The UnknownPragmaHandlers added by DoPrintPreprocessedInput conflict with the
real PragmaHandlers from clang::Parser because they try to handle the same
#pragma directives. This makes it impossible to use a Preprocessor (that was
previously passed to DoPrintPreprocessedInput), as an Preprocessor for a
clang::Parser instance which is what we currently do in cling.

This patch removes the added UnknownPragmaHandler to avoid conflicts these
conflicts and leave the PragmaHandlers of the Preprocessors in a the same state
as before calling DoPrintPreprocessedInput.

Patch by Raphael Isemann (D32486)!
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp (diff)llvm-revision.src/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp
Revision 301562 by marsupial:
Refactor DynamicLibrary so searching for a symbol will have a defined order and
libraries are properly unloaded when llvm_shutdown is called.

Summary:
This was mostly affecting usage of the JIT, where storing the library handles in
a set made iteration unordered/undefined. This lead to disagreement between the
JIT and native code as to what the address and implementation of particularly on
Windows with stdlib functions:

JIT: putenv_s("TEST", "VALUE") // called msvcrt.dll, putenv_s
JIT: getenv("TEST") -> "VALUE" // called msvcrt.dll, getenv
Native: getenv("TEST") -> NULL // called ucrt.dll, getenv

Also fixed is the issue of DynamicLibrary::getPermanentLibrary(0,0) on Windows
not giving priority to the process' symbols as it did on Unix.

Reviewers: chapuni, v.g.vassilev, lhames

Reviewed By: lhames

Subscribers: danalbert, srhines, mgorny, vsk, llvm-commits

Differential Revision: https://reviews.llvm.org/D30107
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/DynamicLibrary.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/DynamicLibrary.h
The file was modified/llvm/trunk/lib/Support/CMakeLists.txt (diff)llvm-revision.src/llvm/trunk/lib/Support/CMakeLists.txt
The file was modified/llvm/trunk/lib/Support/DynamicLibrary.cpp (diff)llvm-revision.src/llvm/trunk/lib/Support/DynamicLibrary.cpp
The file was removed/llvm/trunk/lib/Support/SearchForAddressOfSpecialSymbol.cppllvm-revision.src/llvm/trunk/lib/Support/SearchForAddressOfSpecialSymbol.cpp
The file was added/llvm/trunk/lib/Support/Unix/DynamicLibrary.incllvm-revision.src/llvm/trunk/lib/Support/Unix/DynamicLibrary.inc
The file was modified/llvm/trunk/lib/Support/Windows/DynamicLibrary.inc (diff)llvm-revision.src/llvm/trunk/lib/Support/Windows/DynamicLibrary.inc
The file was modified/llvm/trunk/unittests/Support/CMakeLists.txt (diff)llvm-revision.src/llvm/trunk/unittests/Support/CMakeLists.txt
The file was added/llvm/trunk/unittests/Support/DynamicLibrary/CMakeLists.txtllvm-revision.src/llvm/trunk/unittests/Support/DynamicLibrary/CMakeLists.txt
The file was added/llvm/trunk/unittests/Support/DynamicLibrary/DynamicLibraryTest.cppllvm-revision.src/llvm/trunk/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
The file was added/llvm/trunk/unittests/Support/DynamicLibrary/PipSqueak.cxxllvm-revision.src/llvm/trunk/unittests/Support/DynamicLibrary/PipSqueak.cxx
The file was added/llvm/trunk/unittests/Support/DynamicLibrary/PipSqueak.hllvm-revision.src/llvm/trunk/unittests/Support/DynamicLibrary/PipSqueak.h
Revision 301561 by davidxl:
[PartialInlining]: Improve partial inlining to handle complex conditions

Differential Revision: http://reviews.llvm.org/D32249
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp
The file was modified/llvm/trunk/test/Transforms/CodeExtractor/MultipleExitBranchProb.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/MultipleExitBranchProb.ll
The file was added/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineAnd.llllvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineAnd.ll
The file was added/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineAndOr.llllvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineAndOr.ll
The file was added/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineOr.llllvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineOr.ll
The file was added/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineOrAnd.llllvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineOrAnd.ll
The file was added/llvm/trunk/test/Transforms/CodeExtractor/SingleCondition.llllvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/SingleCondition.ll
The file was modified/llvm/trunk/test/Transforms/CodeExtractor/unreachable-block.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/CodeExtractor/unreachable-block.ll