SuccessChanges

Summary

  1. AMDGPU: Don't use SDNodeXForm for DS offset output The xform has no real valuewhen it's using out of a complex pattern output. The complex pattern was already creating TargetConstants with i16, so this was just unnecessary machinery. This allows global isel to import the simple cases once the complex pattern is implemented.
  2. [TSan] Enable fiber tests on iOS simulator These tests *do not* work on device, but they *do* work in the simulator. rdar://53403778
  3. Temporarily Revert "[Attributor] Liveness analysis." as it's breaking the build. This reverts commit 9285295f75a231dc446fa7cbc10a0a391b3434a5.
  4. [Attributor] Liveness analysis. Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls. Reviewers: jdoerfert, uenoku Subscribers: hiraditya, llvm-commits Differential revision: https://reviews.llvm.org/D64162
  5. [NFC][libc++] Add missing EXPLICIT to pair and tuple synopsis The constructors for std::pair and std::tuple have been made conditionally explicit, however the synopsis in the headers do not reflect that.
  6. [runtimes] Don't depend on libpthread on Android r362048 added support for ELF dependent libraries, but broke Android build since Android does not have libpthread. Remove the dependency on the Android build. Differential Revision: https://reviews.llvm.org/D65098
  7. [X86] When using AND+PACKUS in lowerV16I8Shuffle, generate the build vector directly in v16i8 with the correct 0x00 or 0xFF elements rather than using another VT and bitcasting it. The build_vector will become a constant pool load. By using the desired type initially, it ensures we don't generate a bitcast of the constant pool load which will need to be folded with the load. While experimenting with another patch, I noticed that when the load type and the constant pool type don't match, then SimplifyDemandedBits can't handle it. While we should probably fix that, this was a simple way to fix the issue I saw.
  8. [NFC][PowerPC]Change ADDIStocHA to ADDIStocHA8 to follow 64-bit naming convention Summary: Since we are planning to add ADDIStocHA for 32bit in later patch, we decided to change 64bit one first to follow naming convention with 8 behind opcode. Patch by: Xiangling_L Differential Revision: https://reviews.llvm.org/D64814
  9. [libc++] Set __file_ to 0 in basic_filebuf::close() even if fclose fails This issue was detected by ASan in one of our tests. This test manually invokes basic_filebuf::cloe(). fclose(__h.release() returned a non-zero exit status, so __file_ wasn't set to 0. Later when basic_filebuf destructor ran, we would enter the if (__file_) block again leading to heap-use-after-free error. The POSIX specification for fclose says that independently of the return value, fclose closes the underlying file descriptor and any further access (including another call to fclose()) to the stream results in undefined behavior. This is exactly what happened in our test case. To avoid this issue, we have to always set __file_ to 0 independently of the fclose return value. Differential Revision: https://reviews.llvm.org/D64979
  10. [Attributor] NoAlias on return values. Porting function return value attribute noalias to attributor. This will be followed with a patch for callsite and function argumets. Reviewers: jdoerfert Subscribers: lebedev.ri, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D63067
  11. Stubs out TLOF for AIX and add support for common vars in assembly output. Stubs out a TargetLoweringObjectFileXCOFF class, implementing only SelectSectionForGlobal for common symbols. Also adds an override of EmitGlobalVariable in PPCAIXAsmPrinter which adds a number of defensive errors and adds support for emitting common globals.
  12. [SafeStack] Insert the deref after the offset While debugging code that uses SafeStack, we've noticed that LLVM produces an invalid DWARF. Concretely, in the following example: int main(int argc, char* argv[]) { std::string value = ""; printf("%s\n", value.c_str()); return 0; } DWARF would describe the value variable as being located at: DW_OP_breg14 R14+0, DW_OP_deref, DW_OP_constu 0x20, DW_OP_minus The assembly to get this variable is: leaq -32(%r14), %rbx The order of operations in the DWARF symbols is incorrect in this case. Specifically, the deref is incorrect; this appears to be incorrectly re-inserted in repalceOneDbgValueForAlloca. With this change which inserts the deref after the offset instead of before it, LLVM produces correct DWARF: DW_OP_breg14 R14-32 Differential Revision: https://reviews.llvm.org/D64971
  13. WholeProgramDevirt: Teach the pass to respect the global's alignment. The bytes inserted before an overaligned global need to be padded according to the alignment set on the original global in order for the initializer to meet the global's alignment requirements. The previous implementation that padded to the pointer width happened to be correct for vtables on most platforms but may do the wrong thing if the vtable has a larger alignment. This issue is visible with a prototype implementation of HWASAN for globals, which will overalign all globals including vtables to 16 bytes. There is also no padding requirement for the bytes inserted after the global because they are never read from nor are they significant for alignment purposes, so stop inserting padding there. Differential Revision: https://reviews.llvm.org/D65031
  14. [PowerPC] Fix comment on MO_PLT Target Operand Flag. [NFC] Patch by Xiangling Liao.
  15. [Object][XCOFF] Remove extra includes from XCOFF related files. [NFC] Differential Revision: https://reviews.llvm.org/D60885
  16. LowerTypeTests: Teach the pass to respect global alignments. We were previously ignoring alignment entirely when combining globals together in this pass. There are two main things that we need to do here: add additional padding before each global to meet the alignment requirements, and set the combined global's alignment to the maximum of all of the original globals' alignments. Since we now need to calculate layout as we go anyway, use the calculated layout to produce GlobalLayout instead of using StructLayout. Differential Revision: https://reviews.llvm.org/D65033
  17. Changes to emit CodeView debug info nested type records properly using MCStreamer directives
  18. Adds support for formatting NS_CLOSED_ENUM and CF_CLOSED_ENUM alongside NS_ENUM and CF_ENUM. Summary: Addresses the formatting of NS_CLOSED_ENUM and CF_CLOSED_ENUM, introduced in Swift 5. Before: ``` typedef NS_CLOSED_ENUM(NSInteger, Foo){FooValueOne = 1, FooValueTwo, FooValueThree}; ``` After: ``` typedef NS_CLOSED_ENUM(NSInteger, Foo) { FooValueOne = 1, FooValueTwo, FooValueThree }; ``` Contributed by heijink. Reviewers: benhamilton, krasimir Reviewed By: benhamilton Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65012
  19. [AMDGPU] Test update. NFC.
  20. [SLPVectorizer] Fix some MSVC/cppcheck uninitialized variable warnings. NFCI.
  21. Revert "Reland [ELF] Loose a condition for relocation with a symbol" This reverts commit r366686 as it appears to be causing buildbot failures on sanitizer-x86_64-linux-android and sanitizer-x86_64-linux.
  22. [OPENMP][MSVC]Enable /openmp[:experimental] to compile OpenMP. Mapped /openmp[:experimental] to -fopenmp option and /openmp- option to -fno-openmp
  23. [libc++] Do not infer support for C++17 in GCC < 7 libc++'s lit configuration infers the C++ language dialect when it is not provided by checking which -std= flags that a compiler supports. GCC 5 and GCC 6 have a -std=c++17 flag, however, they do not have full C++17 support. The lit configuration has hardcoded logic that removes -std=c++1z as an option to test for GCC < 7, but not -std=c++17. This leads to a bunch of failures when running libc++ tests with GCC 5 or GCC 6. This patch adds -std=c++17 to the list of flags that are discarded for GCC < 7 by lit's language dialect inference. Thanks to Bryce Adelstein Lelbach for the patch. Differential Revision: https://reviews.llvm.org/D62874
  24. [X86] Remove const from some intrinsics that shouldn't have them
  25. [clangd] Add dlog()s for SelectionTree, enabling -debug-only=SelectionTree.cpp Summary: SelectionTree is a RecursiveASTVisitor which processes getSourceRange() for every node. This is a lot of surface area with the AST, as getSourceRange() is specialized for *many* node types. And the resulting SelectionTree depends on the source ranges of many visited nodes, and the order of traversal. Put together, this means we really need a traversal log to debug when we get an unexpected SelectionTree. I've built this ad-hoc a few times, now it's time to check it in. Example output: ``` D[14:07:44.184] Computing selection for </usr/local/google/home/sammccall/test.cc:1:7, col:8> D[14:07:44.184] push: VarDecl const auto x = 42 D[14:07:44.184] claimRange: </usr/local/google/home/sammccall/test.cc:1:12, col:13> D[14:07:44.184] push: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc) D[14:07:44.184] pop: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc) D[14:07:44.184] push: QualifiedTypeLoc const auto D[14:07:44.184] pop: QualifiedTypeLoc const auto D[14:07:44.184] claimRange: </usr/local/google/home/sammccall/test.cc:1:7, col:11> D[14:07:44.184] hit selection: </usr/local/google/home/sammccall/test.cc:1:7, col:8> D[14:07:44.184] skip: IntegerLiteral 42 D[14:07:44.184] skipped range = </usr/local/google/home/sammccall/test.cc:1:16> D[14:07:44.184] pop: VarDecl const auto x = 42 D[14:07:44.184] claimRange: </usr/local/google/home/sammccall/test.cc:1:1, col:18> D[14:07:44.184] skip: VarDecl int y = 43 D[14:07:44.184] skipped range = </usr/local/google/home/sammccall/test.cc:2:1, col:9> D[14:07:44.184] Built selection tree TranslationUnitDecl VarDecl const auto x = 42 .QualifiedTypeLoc const auto ``` Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65073
  26. Update c++2a status page with post-Cologne information
Revision 366743 by arsenm:
AMDGPU: Don't use SDNodeXForm for DS offset output

The xform has no real valuewhen it's using out of a complex pattern
output. The complex pattern was already creating TargetConstants with
i16, so this was just unnecessary machinery.

This allows global isel to import the simple cases once the complex
pattern is implemented.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/DSInstructions.td (diff)llvm.src/lib/Target/AMDGPU/DSInstructions.td
Revision 366738 by yln:
[TSan] Enable fiber tests on iOS simulator

These tests *do not* work on device, but they *do* work in the
simulator.

rdar://53403778
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/tsan/fiber_from_thread.cc (diff)compiler-rt.src/test/tsan/fiber_from_thread.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_longjmp.cc (diff)compiler-rt.src/test/tsan/fiber_longjmp.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_race.cc (diff)compiler-rt.src/test/tsan/fiber_race.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_simple.cc (diff)compiler-rt.src/test/tsan/fiber_simple.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_two_threads.cc (diff)compiler-rt.src/test/tsan/fiber_two_threads.cc
Revision 366737 by echristo:
Temporarily Revert "[Attributor] Liveness analysis." as it's breaking the build.

This reverts commit 9285295f75a231dc446fa7cbc10a0a391b3434a5.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.h (diff)llvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/Local.h (diff)llvm.src/include/llvm/Transforms/Utils/Local.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was removed/llvm/trunk/test/Transforms/FunctionAttrs/liveness.llllvm.src/test/Transforms/FunctionAttrs/liveness.ll
Revision 366736 by sstefan:
[Attributor] Liveness analysis.

Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
Right now we are only looking at noreturn calls.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, llvm-commits

Differential revision: https://reviews.llvm.org/D64162
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.h (diff)llvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/Local.h (diff)llvm.src/include/llvm/Transforms/Utils/Local.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was added/llvm/trunk/test/Transforms/FunctionAttrs/liveness.llllvm.src/test/Transforms/FunctionAttrs/liveness.ll
Revision 366735 by Louis Dionne:
[NFC][libc++] Add missing EXPLICIT to pair and tuple synopsis

The constructors for std::pair and std::tuple have been made conditionally
explicit, however the synopsis in the headers do not reflect that.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/tuple (diff)libcxx.src/include/tuple
The file was modified/libcxx/trunk/include/utility (diff)libcxx.src/include/utility
Revision 366734 by kongyi:
[runtimes] Don't depend on libpthread on Android

r362048 added support for ELF dependent libraries, but broke Android
build since Android does not have libpthread. Remove the dependency on
the Android build.

Differential Revision: https://reviews.llvm.org/D65098
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/src/algorithm.cpp (diff)libcxx.src/src/algorithm.cpp
The file was modified/libcxx/trunk/src/chrono.cpp (diff)libcxx.src/src/chrono.cpp
The file was modified/libcxx/trunk/src/condition_variable.cpp (diff)libcxx.src/src/condition_variable.cpp
The file was modified/libcxx/trunk/src/debug.cpp (diff)libcxx.src/src/debug.cpp
The file was modified/libcxx/trunk/src/experimental/memory_resource.cpp (diff)libcxx.src/src/experimental/memory_resource.cpp
The file was modified/libcxx/trunk/src/filesystem/operations.cpp (diff)libcxx.src/src/filesystem/operations.cpp
The file was modified/libcxx/trunk/src/memory.cpp (diff)libcxx.src/src/memory.cpp
The file was modified/libcxx/trunk/src/mutex.cpp (diff)libcxx.src/src/mutex.cpp
The file was modified/libcxx/trunk/src/shared_mutex.cpp (diff)libcxx.src/src/shared_mutex.cpp
The file was modified/libcxx/trunk/src/thread.cpp (diff)libcxx.src/src/thread.cpp
The file was modified/libcxxabi/trunk/src/cxa_exception_storage.cpp (diff)N/A
The file was modified/libcxxabi/trunk/src/cxa_guard_impl.h (diff)N/A
The file was modified/libcxxabi/trunk/src/cxa_thread_atexit.cpp (diff)N/A
The file was modified/libcxxabi/trunk/src/fallback_malloc.cpp (diff)N/A
The file was modified/libunwind/trunk/src/AddressSpace.hpp (diff)N/A
The file was modified/libunwind/trunk/src/RWMutex.hpp (diff)N/A
Revision 366732 by ctopper:
[X86] When using AND+PACKUS in lowerV16I8Shuffle, generate the build vector directly in v16i8 with the correct 0x00 or 0xFF elements rather than using another VT and bitcasting it.

The build_vector will become a constant pool load. By using the
desired type initially, it ensures we don't generate a bitcast
of the constant pool load which will need to be folded with
the load.

While experimenting with another patch, I noticed that when the
load type and the constant pool type don't match, then
SimplifyDemandedBits can't handle it. While we should probably
fix that, this was a simple way to fix the issue I saw.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avg.ll (diff)llvm.src/test/CodeGen/X86/avg.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_store_trunc.ll (diff)llvm.src/test/CodeGen/X86/masked_store_trunc.ll
The file was modified/llvm/trunk/test/CodeGen/X86/mmx-arith.ll (diff)llvm.src/test/CodeGen/X86/mmx-arith.ll
The file was modified/llvm/trunk/test/CodeGen/X86/oddshuffles.ll (diff)llvm.src/test/CodeGen/X86/oddshuffles.ll
The file was modified/llvm/trunk/test/CodeGen/X86/oddsubvector.ll (diff)llvm.src/test/CodeGen/X86/oddsubvector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/psubus.ll (diff)llvm.src/test/CodeGen/X86/psubus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2-intrinsics-canonical.ll (diff)llvm.src/test/CodeGen/X86/sse2-intrinsics-canonical.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-and-bool.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-and-bool.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-or-bool.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-or-bool.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-xor-bool.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v16.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-128-v16.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-math-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-math-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-math.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc.ll
Revision 366731 by jasonliu:
[NFC][PowerPC]Change ADDIStocHA to ADDIStocHA8 to follow 64-bit naming convention

Summary:

Since we are planning to add ADDIStocHA for 32bit in later patch, we decided
to change 64bit one first to follow naming convention with 8 behind opcode.

Patch by: Xiangling_L

Differential Revision: https://reviews.llvm.org/D64814
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/P9InstrResources.td (diff)llvm.src/lib/Target/PowerPC/P9InstrResources.td
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (diff)llvm.src/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCFastISel.cpp (diff)llvm.src/lib/Target/PowerPC/PPCFastISel.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp (diff)llvm.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (diff)llvm.src/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td (diff)llvm.src/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.mir (diff)llvm.src/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.mir
The file was modified/llvm/trunk/test/CodeGen/PowerPC/aantidep-def-ec.mir (diff)llvm.src/test/CodeGen/PowerPC/aantidep-def-ec.mir
The file was modified/llvm/trunk/test/CodeGen/PowerPC/licm-tocReg.ll (diff)llvm.src/test/CodeGen/PowerPC/licm-tocReg.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/no-rlwimi-trivial-commute.mir (diff)llvm.src/test/CodeGen/PowerPC/no-rlwimi-trivial-commute.mir
The file was modified/llvm/trunk/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir (diff)llvm.src/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir
Revision 366730 by phosek:
[libc++] Set __file_ to 0 in basic_filebuf::close() even if fclose fails

This issue was detected by ASan in one of our tests. This test manually
invokes basic_filebuf::cloe(). fclose(__h.release() returned a non-zero
exit status, so __file_ wasn't set to 0. Later when basic_filebuf
destructor ran, we would enter the if (__file_) block again leading to
heap-use-after-free error.

The POSIX specification for fclose says that independently of the return
value, fclose closes the underlying file descriptor and any further
access (including another call to fclose()) to the stream results in
undefined behavior. This is exactly what happened in our test case.

To avoid this issue, we have to always set __file_ to 0 independently of
the fclose return value.

Differential Revision: https://reviews.llvm.org/D64979
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/fstream (diff)libcxx.src/include/fstream
The file was added/libcxx/trunk/test/std/input.output/file.streams/fstreams/filebuf.members/close.pass.cpplibcxx.src/test/std/input.output/file.streams/fstreams/filebuf.members/close.pass.cpp
Revision 366728 by sstefan:
[Attributor] NoAlias on return values.

Porting function return value attribute noalias to attributor.
This will be followed with a patch for callsite and function argumets.

Reviewers: jdoerfert

Subscribers: lebedev.ri, hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D63067
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.h (diff)llvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
The file was added/llvm/trunk/test/Transforms/FunctionAttrs/noalias_returned.llllvm.src/test/Transforms/FunctionAttrs/noalias_returned.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/nonnull.ll (diff)llvm.src/test/Transforms/FunctionAttrs/nonnull.ll
Revision 366727 by sfertile:
Stubs out TLOF for AIX and add support for common vars in assembly output.

Stubs out a TargetLoweringObjectFileXCOFF class, implementing only
SelectSectionForGlobal for common symbols. Also adds an override of
EmitGlobalVariable in PPCAIXAsmPrinter which adds a number of defensive errors
and adds support for emitting common globals.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/XCOFF.h (diff)llvm.src/include/llvm/BinaryFormat/XCOFF.h
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h (diff)llvm.src/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
The file was modified/llvm/trunk/include/llvm/MC/MCContext.h (diff)llvm.src/include/llvm/MC/MCContext.h
The file was modified/llvm/trunk/include/llvm/MC/MCSectionXCOFF.h (diff)llvm.src/include/llvm/MC/MCSectionXCOFF.h
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmInfoXCOFF.cpp (diff)llvm.src/lib/MC/MCAsmInfoXCOFF.cpp
The file was modified/llvm/trunk/lib/MC/MCContext.cpp (diff)llvm.src/lib/MC/MCContext.cpp
The file was modified/llvm/trunk/lib/MC/MCObjectFileInfo.cpp (diff)llvm.src/lib/MC/MCObjectFileInfo.cpp
The file was modified/llvm/trunk/lib/MC/MCSectionXCOFF.cpp (diff)llvm.src/lib/MC/MCSectionXCOFF.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (diff)llvm.src/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp (diff)llvm.src/lib/Target/PowerPC/PPCTargetMachine.cpp
The file was added/llvm/trunk/test/CodeGen/PowerPC/aix-xcoff-common.llllvm.src/test/CodeGen/PowerPC/aix-xcoff-common.ll
Revision 366726 by phosek:
[SafeStack] Insert the deref after the offset

While debugging code that uses SafeStack, we've noticed that LLVM
produces an invalid DWARF. Concretely, in the following example:

  int main(int argc, char* argv[]) {
    std::string value = "";
    printf("%s\n", value.c_str());
    return 0;
  }

DWARF would describe the value variable as being located at:

  DW_OP_breg14 R14+0, DW_OP_deref, DW_OP_constu 0x20, DW_OP_minus

The assembly to get this variable is:

  leaq    -32(%r14), %rbx

The order of operations in the DWARF symbols is incorrect in this case.
Specifically, the deref is incorrect; this appears to be incorrectly
re-inserted in repalceOneDbgValueForAlloca.

With this change which inserts the deref after the offset instead of
before it, LLVM produces correct DWARF:

  DW_OP_breg14 R14-32

Differential Revision: https://reviews.llvm.org/D64971
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was modified/llvm/trunk/test/Transforms/SafeStack/X86/debug-loc2.ll (diff)llvm.src/test/Transforms/SafeStack/X86/debug-loc2.ll
Revision 366725 by pcc:
WholeProgramDevirt: Teach the pass to respect the global's alignment.

The bytes inserted before an overaligned global need to be padded according
to the alignment set on the original global in order for the initializer
to meet the global's alignment requirements. The previous implementation
that padded to the pointer width happened to be correct for vtables on most
platforms but may do the wrong thing if the vtable has a larger alignment.

This issue is visible with a prototype implementation of HWASAN for globals,
which will overalign all globals including vtables to 16 bytes.

There is also no padding requirement for the bytes inserted after the global
because they are never read from nor are they significant for alignment
purposes, so stop inserting padding there.

Differential Revision: https://reviews.llvm.org/D65031
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp (diff)llvm.src/lib/Transforms/IPO/WholeProgramDevirt.cpp
The file was modified/llvm/trunk/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll (diff)llvm.src/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll
The file was modified/llvm/trunk/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll (diff)llvm.src/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll
Revision 366724 by sfertile:
[PowerPC] Fix comment on MO_PLT Target Operand Flag. [NFC]

Patch by Xiangling Liao.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPC.h (diff)llvm.src/lib/Target/PowerPC/PPC.h
Revision 366723 by sfertile:
[Object][XCOFF] Remove extra includes from XCOFF related files. [NFC]

Differential Revision: https://reviews.llvm.org/D60885
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Object/XCOFFObjectFile.h (diff)llvm.src/include/llvm/Object/XCOFFObjectFile.h
The file was modified/llvm/trunk/lib/Object/XCOFFObjectFile.cpp (diff)llvm.src/lib/Object/XCOFFObjectFile.cpp
Revision 366722 by pcc:
LowerTypeTests: Teach the pass to respect global alignments.

We were previously ignoring alignment entirely when combining globals
together in this pass. There are two main things that we need to do here:
add additional padding before each global to meet the alignment requirements,
and set the combined global's alignment to the maximum of all of the original
globals' alignments.

Since we now need to calculate layout as we go anyway, use the calculated
layout to produce GlobalLayout instead of using StructLayout.

Differential Revision: https://reviews.llvm.org/D65033
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/LowerTypeTests.cpp (diff)llvm.src/lib/Transforms/IPO/LowerTypeTests.cpp
The file was added/llvm/trunk/test/Transforms/LowerTypeTests/align.llllvm.src/test/Transforms/LowerTypeTests/align.ll
Revision 366720 by nilanjana_basu:
Changes to emit CodeView debug info nested type records properly using MCStreamer directives
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h (diff)llvm.src/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h (diff)llvm.src/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
The file was modified/llvm/trunk/include/llvm/MC/MCExpr.h (diff)llvm.src/include/llvm/MC/MCExpr.h
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp (diff)llvm.src/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/TypeRecordMapping.cpp (diff)llvm.src/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
The file was modified/llvm/trunk/test/DebugInfo/COFF/types-basic.ll (diff)llvm.src/test/DebugInfo/COFF/types-basic.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/types-data-members.ll (diff)llvm.src/test/DebugInfo/COFF/types-data-members.ll
Revision 366719 by benhamilton:
Adds support for formatting NS_CLOSED_ENUM and CF_CLOSED_ENUM alongside NS_ENUM and CF_ENUM.

Summary:
Addresses the formatting of NS_CLOSED_ENUM and CF_CLOSED_ENUM, introduced in Swift 5.

Before:

```
typedef NS_CLOSED_ENUM(NSInteger, Foo){FooValueOne = 1, FooValueTwo,
                                       FooValueThree};
```

After:

```
typedef NS_CLOSED_ENUM(NSInteger, Foo) {
  FooValueOne = 1,
  FooValueTwo,
  FooValueThree
};
```

Contributed by heijink.

Reviewers: benhamilton, krasimir

Reviewed By: benhamilton

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65012
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/Format.cpp (diff)clang.src/lib/Format/Format.cpp
The file was modified/cfe/trunk/lib/Format/FormatToken.h (diff)clang.src/lib/Format/FormatToken.h
The file was modified/cfe/trunk/lib/Format/UnwrappedLineParser.cpp (diff)clang.src/lib/Format/UnwrappedLineParser.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cpp (diff)clang.src/unittests/Format/FormatTest.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTestObjC.cpp (diff)clang.src/unittests/Format/FormatTestObjC.cpp
Revision 366715 by rampitec:
[AMDGPU] Test update. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll (diff)llvm.src/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
Revision 366712 by rksimon:
[SLPVectorizer] Fix some MSVC/cppcheck uninitialized variable warnings. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)llvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
Revision 366708 by vlad.tsyrklevich:
Revert "Reland [ELF] Loose a condition for relocation with a symbol"

This reverts commit r366686 as it appears to be causing buildbot
failures on sanitizer-x86_64-linux-android and sanitizer-x86_64-linux.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/ELFObjectWriter.cpp (diff)llvm.src/lib/MC/ELFObjectWriter.cpp
The file was modified/llvm/trunk/test/MC/ELF/basic-elf-32.s (diff)llvm.src/test/MC/ELF/basic-elf-32.s
The file was modified/llvm/trunk/test/MC/ELF/compression.s (diff)llvm.src/test/MC/ELF/compression.s
The file was modified/llvm/trunk/test/MC/ELF/relocation-386.s (diff)llvm.src/test/MC/ELF/relocation-386.s
The file was modified/llvm/trunk/test/MC/Mips/elf-relsym.s (diff)llvm.src/test/MC/Mips/elf-relsym.s
The file was modified/llvm/trunk/test/MC/Mips/xgot.s (diff)llvm.src/test/MC/Mips/xgot.s
Revision 366702 by abataev:
[OPENMP][MSVC]Enable /openmp[:experimental] to compile OpenMP.

Mapped /openmp[:experimental] to -fopenmp option and /openmp- option to
-fno-openmp
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/CLCompatOptions.td (diff)clang.src/include/clang/Driver/CLCompatOptions.td
The file was modified/cfe/trunk/test/Driver/fopenmp.c (diff)clang.src/test/Driver/fopenmp.c
Revision 366700 by Louis Dionne:
[libc++] Do not infer support for C++17 in GCC < 7

libc++'s lit configuration infers the C++ language dialect when it is
not provided by checking which -std= flags that a compiler supports.
GCC 5 and GCC 6 have a -std=c++17 flag, however, they do not have full
C++17 support. The lit configuration has hardcoded logic that removes
-std=c++1z as an option to test for GCC < 7, but not -std=c++17.

This leads to a bunch of failures when running libc++ tests with GCC 5
or GCC 6. This patch adds -std=c++17 to the list of flags that are
discarded for GCC < 7 by lit's language dialect inference.

Thanks to Bryce Adelstein Lelbach for the patch.

Differential Revision: https://reviews.llvm.org/D62874
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/utils/libcxx/test/config.py (diff)libcxx.src/utils/libcxx/test/config.py
Revision 366699 by probinson:
[X86] Remove const from some intrinsics that shouldn't have them
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/emmintrin.h (diff)clang.src/lib/Headers/emmintrin.h
Revision 366698 by sammccall:
[clangd] Add dlog()s for SelectionTree, enabling -debug-only=SelectionTree.cpp

Summary:
SelectionTree is a RecursiveASTVisitor which processes getSourceRange() for
every node. This is a lot of surface area with the AST, as getSourceRange()
is specialized for *many* node types.
And the resulting SelectionTree depends on the source ranges of many
visited nodes, and the order of traversal.

Put together, this means we really need a traversal log to debug when we
get an unexpected SelectionTree. I've built this ad-hoc a few times, now
it's time to check it in.

Example output:
```
D[14:07:44.184] Computing selection for </usr/local/google/home/sammccall/test.cc:1:7, col:8>
D[14:07:44.184]  push: VarDecl const auto x = 42
D[14:07:44.184]   claimRange: </usr/local/google/home/sammccall/test.cc:1:12, col:13>
D[14:07:44.184]   push: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc)
D[14:07:44.184]   pop: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc)
D[14:07:44.184]   push: QualifiedTypeLoc const auto
D[14:07:44.184]   pop: QualifiedTypeLoc const auto
D[14:07:44.184]    claimRange: </usr/local/google/home/sammccall/test.cc:1:7, col:11>
D[14:07:44.184]    hit selection: </usr/local/google/home/sammccall/test.cc:1:7, col:8>
D[14:07:44.184]   skip: IntegerLiteral 42
D[14:07:44.184]    skipped range = </usr/local/google/home/sammccall/test.cc:1:16>
D[14:07:44.184]  pop: VarDecl const auto x = 42
D[14:07:44.184]   claimRange: </usr/local/google/home/sammccall/test.cc:1:1, col:18>
D[14:07:44.184]  skip: VarDecl int y = 43
D[14:07:44.184]   skipped range = </usr/local/google/home/sammccall/test.cc:2:1, col:9>
D[14:07:44.184] Built selection tree
TranslationUnitDecl
  VarDecl const auto x = 42
     .QualifiedTypeLoc const auto

```

Reviewers: hokein

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65073
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTTypeTraits.cpp (diff)clang.src/lib/AST/ASTTypeTraits.cpp
The file was modified/clang-tools-extra/trunk/clangd/Selection.cpp (diff)clang-tools-extra.src/clangd/Selection.cpp
The file was modified/clang-tools-extra/trunk/clangd/Selection.h (diff)clang-tools-extra.src/clangd/Selection.h
Revision 366696 by marshall:
Update c++2a status page with post-Cologne information
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/www/cxx2a_status.html (diff)libcxx.src/www/cxx2a_status.html