SuccessChanges

Summary

  1. Fix clang_cl argument in fsanitize.c driver test.
  2. [Sema] Implement Core 2094: Trivial copy/move constructor for class with volatile member Summary: This patch implements http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#2094 which reverts Core 496. Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D32984
  3. Update Clang C++ DR documentation for new issue list
  4. [asan] A clang flag to enable ELF globals-gc. This feature is subtly broken when the linker is gold 2.26 or earlier. See the following bug for details: https://sourceware.org/bugzilla/show_bug.cgi?id=19002 Since the decision needs to be made at compilation time, we can not test the linker version. The flag is off by default on ELF targets, and on otherwise.
  5. Remove unnecessary calls to MakeArgString.
  6. [ExecutionEngine] Make RuntimeDyld::MemoryManager responsible for tracking EH frames. RuntimeDyld was previously responsible for tracking allocated EH frames, but it makes more sense to have the RuntimeDyld::MemoryManager track them (since the frames are allocated through the memory manager, and written to memory owned by the memory manager). This patch moves the frame tracking into RTDyldMemoryManager, and changes the deregisterFrames method on RuntimeDyld::MemoryManager from: void deregisterEHFrames(uint8_t *Addr, uint64_t LoadAddr, size_t Size); to: void deregisterEHFrames(); Separating this responsibility will allow ORC to continue to throw the RuntimeDyld instances away post-link (saving a few dozen bytes per lazy function) while properly deregistering frames when modules are unloaded. This patch also updates ORC to call deregisterEHFrames when modules are unloaded. This fixes a bug where an exception that tears down the JIT can then unwind through dangling EH frames that have been deallocated but not deregistered, resulting in UB. For people using SectionMemoryManager this should be pretty much a no-op. For people with custom allocators that override registerEHFrames/deregisterEHFrames, you will now be responsible for tracking allocated EH frames. Reviewed in https://reviews.llvm.org/D32829
  7. Fix CGObjCGNU::init bug introduced by r302572
  8. [GVN] Fix a crash on encountering non-integral pointers Summary: This fixes the immediate crash caused by introducing an incorrect inttoptr before attempting the conversion. There may still be a legality check missing somewhere earlier for non-integral pointers, but this change seems necessary in any case. Reviewers: sanjoy, dberlin Reviewed By: dberlin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32623
  9. [AMDGPU] Fixed typo in GCNRegPressure, NFC VGRP -> VGPR, SGRP -> SGPR
  10. [InstCombine] update test file to use FileCheck; NFC
Revision 302594 by eugenis:
Fix clang_cl argument in fsanitize.c driver test.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/fsanitize.c (diff)llvm-revision.src/cfe/trunk/test/Driver/fsanitize.c
Revision 302593 by ericwf:
[Sema] Implement Core 2094: Trivial copy/move constructor for class with volatile member

Summary: This patch implements http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#2094 which reverts Core 496.

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D32984
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/Type.cpp (diff)llvm-revision.src/cfe/trunk/lib/AST/Type.cpp
The file was added/cfe/trunk/test/CXX/drs/dr20xx.cppllvm-revision.src/cfe/trunk/test/CXX/drs/dr20xx.cpp
The file was modified/cfe/trunk/test/CXX/drs/dr4xx.cpp (diff)llvm-revision.src/cfe/trunk/test/CXX/drs/dr4xx.cpp
The file was modified/cfe/trunk/test/SemaCXX/type-traits.cpp (diff)llvm-revision.src/cfe/trunk/test/SemaCXX/type-traits.cpp
The file was modified/cfe/trunk/www/cxx_dr_status.html (diff)llvm-revision.src/cfe/trunk/www/cxx_dr_status.html
Revision 302592 by ericwf:
Update Clang C++ DR documentation for new issue list
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/www/cxx_dr_status.html (diff)llvm-revision.src/cfe/trunk/www/cxx_dr_status.html
Revision 302591 by eugenis:
[asan] A clang flag to enable ELF globals-gc.

This feature is subtly broken when the linker is gold 2.26 or
earlier. See the following bug for details:
  https://sourceware.org/bugzilla/show_bug.cgi?id=19002

Since the decision needs to be made at compilation time, we can not
test the linker version. The flag is off by default on ELF targets,
and on otherwise.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)llvm-revision.src/cfe/trunk/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/SanitizerArgs.h (diff)llvm-revision.src/cfe/trunk/include/clang/Driver/SanitizerArgs.h
The file was modified/cfe/trunk/include/clang/Frontend/CodeGenOptions.def (diff)llvm-revision.src/cfe/trunk/include/clang/Frontend/CodeGenOptions.def
The file was modified/cfe/trunk/lib/CodeGen/BackendUtil.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/BackendUtil.cpp
The file was modified/cfe/trunk/lib/Driver/SanitizerArgs.cpp (diff)llvm-revision.src/cfe/trunk/lib/Driver/SanitizerArgs.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)llvm-revision.src/cfe/trunk/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/test/CodeGen/asan-globals-gc.cpp (diff)llvm-revision.src/cfe/trunk/test/CodeGen/asan-globals-gc.cpp
The file was modified/cfe/trunk/test/Driver/fsanitize.c (diff)llvm-revision.src/cfe/trunk/test/Driver/fsanitize.c
Revision 302590 by eugenis:
Remove unnecessary calls to MakeArgString.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/SanitizerArgs.cpp (diff)llvm-revision.src/cfe/trunk/lib/Driver/SanitizerArgs.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/Mips.cpp (diff)llvm-revision.src/cfe/trunk/lib/Driver/ToolChains/Arch/Mips.cpp
Revision 302589 by Lang Hames:
[ExecutionEngine] Make RuntimeDyld::MemoryManager responsible for tracking EH
frames.

RuntimeDyld was previously responsible for tracking allocated EH frames, but it
makes more sense to have the RuntimeDyld::MemoryManager track them (since the
frames are allocated through the memory manager, and written to memory owned by
the memory manager). This patch moves the frame tracking into
RTDyldMemoryManager, and changes the deregisterFrames method on
RuntimeDyld::MemoryManager from:

void deregisterEHFrames(uint8_t *Addr, uint64_t LoadAddr, size_t Size);

to:

void deregisterEHFrames();

Separating this responsibility will allow ORC to continue to throw the
RuntimeDyld instances away post-link (saving a few dozen bytes per lazy
function) while properly deregistering frames when modules are unloaded.

This patch also updates ORC to call deregisterEHFrames when modules are
unloaded. This fixes a bug where an exception that tears down the JIT can then
unwind through dangling EH frames that have been deallocated but not
deregistered, resulting in UB.

For people using SectionMemoryManager this should be pretty much a no-op. For
people with custom allocators that override registerEHFrames/deregisterEHFrames,
you will now be responsible for tracking allocated EH frames.

Reviewed in https://reviews.llvm.org/D32829
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/RTDyldMemoryManager.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/RuntimeDyld.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ExecutionEngine/RuntimeDyld.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
The file was modified/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h (diff)llvm-revision.src/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
The file was modified/llvm/trunk/tools/lli/RemoteJITUtils.h (diff)llvm-revision.src/llvm/trunk/tools/lli/RemoteJITUtils.h
The file was modified/llvm/trunk/tools/llvm-rtdyld/llvm-rtdyld.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-rtdyld/llvm-rtdyld.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp (diff)llvm-revision.src/llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp (diff)llvm-revision.src/llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp
Revision 302588 by serge_sans_paille:
Fix CGObjCGNU::init bug introduced by r302572
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
Revision 302587 by kfischer:
[GVN] Fix a crash on encountering non-integral pointers

Summary:
This fixes the immediate crash caused by introducing an incorrect inttoptr
before attempting the conversion. There may still be a legality
check missing somewhere earlier for non-integral pointers, but this change
seems necessary in any case.

Reviewers: sanjoy, dberlin

Reviewed By: dberlin

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32623
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp
The file was added/llvm/trunk/test/Transforms/GVN/PRE/nonintegral.llllvm-revision.src/llvm/trunk/test/Transforms/GVN/PRE/nonintegral.ll
Revision 302586 by rampitec:
[AMDGPU] Fixed typo in GCNRegPressure, NFC

VGRP -> VGPR, SGRP -> SGPR
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNRegPressure.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AMDGPU/GCNRegPressure.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNRegPressure.h (diff)llvm-revision.src/llvm/trunk/lib/Target/AMDGPU/GCNRegPressure.h
Revision 302585 by spatel:
[InstCombine] update test file to use FileCheck; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/bit-tracking.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/bit-tracking.ll