SuccessChanges

Summary

  1. [compiler-rt] Add missing quotation marks to msan_compile invocation
  2. Adopt to LLVM API change (llvm.dbg.value no longer has an offset)
  3. Remove the obsolete offset parameter from @llvm.dbg.value There is no situation where this rarely-used argument cannot be substituted with a DIExpression and removing it allows us to simplify the DWARF backend. Note that this patch does not yet remove any of the newly dead code. rdar://problem/33580047 Differential Revision: https://reviews.llvm.org/D35951
  4. [SLP] Allow vectorization of the instruction from the same basic blocks only, NFC. Summary: After some changes in SLP vectorizer we missed some additional checks to limit the instructions for vectorization. We should not perform analysis of the instructions if the parent of instruction is not the same as the parent of the first instruction in the tree or it was analyzed already. Subscribers: mzolotukhin Differential Revision: https://reviews.llvm.org/D34881
  5. Add end-to-end tests for overflows of byval arguments. Summary: Included is one test for passing structs by value and one test for passing C++ objects by value. Reviewers: eugenis, vitalybuka Reviewed By: eugenis Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D34827
  6. Add clear_cache implementation for ppc64. Fix buffer to meet ppc64 alignment.
  7. Fix conditional tail call branch folding when both edges are the same The conditional tail call logic did the wrong thing when both destinations of a conditional branch were the same: BB#1: derived from LLVM BB %entry Live Ins: %EFLAGS Predecessors according to CFG: BB#0 JE_1 <BB#5>, %EFLAGS<imp-use,kill> JMP_1 <BB#5> BB#5: derived from LLVM BB %sw.epilog Predecessors according to CFG: BB#1 TCRETURNdi64 <ga:@mergeable_conditional_tailcall>, 0, ... We would fold the JE_1 to a TCRETURNdi64cc, and then remove our BB#5 successor. Then BB#5 would be deleted as it had no predecessors, leaving a dangling "JMP_1 <BB#5>" reference behind to cause assertions later. This patch checks that both conditional branch destinations are different before doing the transform. The standard branch folding logic is able to remove both the JMP_1 and the JE_1, and for my test case we end up forming a better conditional tail call later. Fixes PR33980
  8. Revert r308677. Incorrect directories were created by the patch.
  9. AMDGPU: Look through a bitcast user of an out argument This allows handling of a lot more of the interesting cases in Blender. Most of the large functions unlikely to be inlined have this pattern. This is a special case for what clang emits for OpenCL 3 element vectors. Annoyingly, these are emitted as <3 x elt>* pointers, but accessed as <4 x elt>* operations. This also needs to handle cases where a struct containing a single vector is used.
  10. [Value Tracking] Refactor icmp comparison logic into helper. NFC.
  11. AMDGPU: Add pass to replace out arguments It is better to return arguments directly in registers if we are making a call rather than introducing expensive stack usage. In one of sample compile from one of Blender's many kernel variants, this fires on about ~20 different functions. Future improvements may be to recognize simple cases where the pointer is indexing a small array. This also fails when the store to the out argument is in a separate block from the return, which happens in a few of the Blender functions. This should also probably be using MemorySSA which might help with that. I'm not sure this is correct as a FunctionPass, but MemoryDependenceAnalysis seems to not work with a ModulePass. I'm also not sure where it should run.I think it should run before DeadArgumentElimination, so maybe either EP_CGSCCOptimizerLate or EP_ScalarOptimizerLate.
  12. [LVI] Constant-propagate a zero extension of the switch condition value through case edges Summary: LazyValueInfo currently computes the constant value of the switch condition through case edges, which allows the constant value to be propagated through the case edges. But we have seen a case where a zero-extended value of the switch condition is used past case edges for which the constant propagation doesn't occur. This patch adds a small logic to handle such a case in getEdgeValueLocal(). This is motivated by the Python 2.7 eval loop in PyEval_EvalFrameEx() where the lack of the constant propagation causes longer live ranges and more spill code than necessary. With this patch, we see that the code size of PyEval_EvalFrameEx() decreases by ~5.4% and a performance test improves by ~4.6%. Reviewers: wmi, dberlin, sanjoy Reviewed By: sanjoy Subscribers: davide, davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D34822
  13. [CMake] Add Android toolchain CMake cache files. Summary: Thoes files are used to build Android toolchain. D32816 makes it possible to build runtimes for targets. Reviewers: beanz, srhines Reviewed By: srhines Subscribers: pirama, jroelofs, srhines, cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D33561
  14. [sanitizers test CMake] further refactor testing CMake for tsan TSan tests on Darwin first link all libraries into a static archive file. With this change, the linking is done once per all architecture, and previously the linking step was repeated per each architecture per each add_tsan_test call. Furthermore, the code is cleared up. Differential Revision: https://reviews.llvm.org/D35913
  15. [sanitizer tests CMake] Factor out CMake logic for compiling sanitizer tests Currently there's a large amount of CMake logic duplication for compiling sanitizer tests. If we add more sanitizers, the duplication will get even worse. This change factors out common compilation commands into a macro available to all sanitizers.
Revision 309430 by kparzysz:
[compiler-rt] Add missing quotation marks to msan_compile invocation
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/msan/tests/CMakeLists.txtcompiler-rt.src/lib/msan/tests/CMakeLists.txt
Revision 309427 by Adrian Prantl:
Adopt to LLVM API change (llvm.dbg.value no longer has an offset)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGDebugInfo.cppclang.src/lib/CodeGen/CGDebugInfo.cpp
The file was modified/cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.mclang.src/test/CodeGenObjC/debug-info-block-captured-self.m
Revision 309426 by Adrian Prantl:
Remove the obsolete offset parameter from @llvm.dbg.value

There is no situation where this rarely-used argument cannot be
substituted with a DIExpression and removing it allows us to simplify
the DWARF backend. Note that this patch does not yet remove any of
the newly dead code.

rdar://problem/33580047
Differential Revision: https://reviews.llvm.org/D35951
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/docs/SourceLevelDebugging.rstllvm.src/docs/SourceLevelDebugging.rst
The file was modified/llvm/trunk/include/llvm/IR/DIBuilder.hllvm.src/include/llvm/IR/DIBuilder.h
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicInst.hllvm.src/include/llvm/IR/IntrinsicInst.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.tdllvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cppllvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cppllvm.src/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/IR/AutoUpgrade.cppllvm.src/lib/IR/AutoUpgrade.cpp
The file was modified/llvm/trunk/lib/IR/DIBuilder.cppllvm.src/lib/IR/DIBuilder.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cppllvm.src/lib/Transforms/Utils/Local.cpp
The file was added/llvm/trunk/test/Bitcode/upgrade-dbg-value.llllvm.src/test/Bitcode/upgrade-dbg-value.ll
The file was added/llvm/trunk/test/Bitcode/upgrade-dbg-value.ll.bcllvm.src/test/Bitcode/upgrade-dbg-value.ll.bc
The file was modified/llvm/trunk/test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.llllvm.src/test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.llllvm.src/test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/2010-08-04-StackVariable.llllvm.src/test/CodeGen/ARM/2010-08-04-StackVariable.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.llllvm.src/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.llllvm.src/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/2016-08-24-ARM-LDST-dbginfo-bug.llllvm.src/test/CodeGen/ARM/2016-08-24-ARM-LDST-dbginfo-bug.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/coalesce-dbgvalue.llllvm.src/test/CodeGen/ARM/coalesce-dbgvalue.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-arg.llllvm.src/test/CodeGen/ARM/debug-info-arg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-blocks.llllvm.src/test/CodeGen/ARM/debug-info-blocks.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-branch-folding.llllvm.src/test/CodeGen/ARM/debug-info-branch-folding.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-d16-reg.llllvm.src/test/CodeGen/ARM/debug-info-d16-reg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-qreg.llllvm.src/test/CodeGen/ARM/debug-info-qreg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-s16-reg.llllvm.src/test/CodeGen/ARM/debug-info-s16-reg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/debug-info-sreg2.llllvm.src/test/CodeGen/ARM/debug-info-sreg2.ll
The file was modified/llvm/trunk/test/DebugInfo/AArch64/cfi-eof-prologue.llllvm.src/test/DebugInfo/AArch64/cfi-eof-prologue.ll
The file was modified/llvm/trunk/test/DebugInfo/AArch64/coalescing.llllvm.src/test/DebugInfo/AArch64/coalescing.ll
The file was modified/llvm/trunk/test/DebugInfo/AArch64/frameindices.llllvm.src/test/DebugInfo/AArch64/frameindices.ll
The file was modified/llvm/trunk/test/DebugInfo/AMDGPU/dbg-value-sched-crash.llllvm.src/test/DebugInfo/AMDGPU/dbg-value-sched-crash.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/PR16736.llllvm.src/test/DebugInfo/ARM/PR16736.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/PR26163.llllvm.src/test/DebugInfo/ARM/PR26163.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/cfi-eof-prologue.llllvm.src/test/DebugInfo/ARM/cfi-eof-prologue.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/float-args.llllvm.src/test/DebugInfo/ARM/float-args.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/lowerbdgdeclare_vla.llllvm.src/test/DebugInfo/ARM/lowerbdgdeclare_vla.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/partial-subreg.llllvm.src/test/DebugInfo/ARM/partial-subreg.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/s-super-register.llllvm.src/test/DebugInfo/ARM/s-super-register.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/split-complex.llllvm.src/test/DebugInfo/ARM/split-complex.ll
The file was modified/llvm/trunk/test/DebugInfo/ARM/sroa-complex.llllvm.src/test/DebugInfo/ARM/sroa-complex.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/comdat.llllvm.src/test/DebugInfo/COFF/comdat.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/fp-stack.llllvm.src/test/DebugInfo/COFF/fp-stack.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-constant.llllvm.src/test/DebugInfo/COFF/local-constant.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variable-gap.llllvm.src/test/DebugInfo/COFF/local-variable-gap.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/pieces.llllvm.src/test/DebugInfo/COFF/pieces.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/register-variables.llllvm.src/test/DebugInfo/COFF/register-variables.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/types-calling-conv.llllvm.src/test/DebugInfo/COFF/types-calling-conv.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/2009-11-10-CurrentFn.llllvm.src/test/DebugInfo/Generic/2009-11-10-CurrentFn.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/2010-05-03-OriginDIE.llllvm.src/test/DebugInfo/Generic/2010-05-03-OriginDIE.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.llllvm.src/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/dead-argument-order.llllvm.src/test/DebugInfo/Generic/dead-argument-order.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/gvn.llllvm.src/test/DebugInfo/Generic/gvn.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/incorrect-variable-debugloc.llllvm.src/test/DebugInfo/Generic/incorrect-variable-debugloc.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/incorrect-variable-debugloc1.llllvm.src/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/inlined-arguments.llllvm.src/test/DebugInfo/Generic/inlined-arguments.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/inlined-vars.llllvm.src/test/DebugInfo/Generic/inlined-vars.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/missing-abstract-variable.llllvm.src/test/DebugInfo/Generic/missing-abstract-variable.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/piece-verifier.llllvm.src/test/DebugInfo/Generic/piece-verifier.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/recursive_inlining.llllvm.src/test/DebugInfo/Generic/recursive_inlining.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/sugared-constants.llllvm.src/test/DebugInfo/Generic/sugared-constants.ll
The file was modified/llvm/trunk/test/DebugInfo/Generic/two-cus-from-same-file.llllvm.src/test/DebugInfo/Generic/two-cus-from-same-file.ll
The file was modified/llvm/trunk/test/DebugInfo/Mips/InlinedFnLocalVar.llllvm.src/test/DebugInfo/Mips/InlinedFnLocalVar.ll
The file was modified/llvm/trunk/test/DebugInfo/Mips/delay-slot.llllvm.src/test/DebugInfo/Mips/delay-slot.ll
The file was modified/llvm/trunk/test/DebugInfo/Mips/dsr-fixed-objects.llllvm.src/test/DebugInfo/Mips/dsr-fixed-objects.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/DW_AT_calling-convention.llllvm.src/test/DebugInfo/X86/DW_AT_calling-convention.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/DW_AT_location-reference.llllvm.src/test/DebugInfo/X86/DW_AT_location-reference.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/InlinedFnLocalVar.llllvm.src/test/DebugInfo/X86/InlinedFnLocalVar.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/PR26148.llllvm.src/test/DebugInfo/X86/PR26148.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/array.llllvm.src/test/DebugInfo/X86/array.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/array2.llllvm.src/test/DebugInfo/X86/array2.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/bbjoin.llllvm.src/test/DebugInfo/X86/bbjoin.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/block-capture.llllvm.src/test/DebugInfo/X86/block-capture.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/constant-aggregate.llllvm.src/test/DebugInfo/X86/constant-aggregate.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/constant-loclist.llllvm.src/test/DebugInfo/X86/constant-loclist.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-const-int.llllvm.src/test/DebugInfo/X86/dbg-const-int.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-const.llllvm.src/test/DebugInfo/X86/dbg-const.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-i128-const.llllvm.src/test/DebugInfo/X86/dbg-i128-const.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-merge-loc-entry.llllvm.src/test/DebugInfo/X86/dbg-merge-loc-entry.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.llllvm.src/test/DebugInfo/X86/dbg-value-const-byref.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-dag-combine.llllvm.src/test/DebugInfo/X86/dbg-value-dag-combine.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-frame-index.llllvm.src/test/DebugInfo/X86/dbg-value-frame-index.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-g-gmlt.llllvm.src/test/DebugInfo/X86/dbg-value-g-gmlt.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-inlined-parameter.llllvm.src/test/DebugInfo/X86/dbg-value-inlined-parameter.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-isel.llllvm.src/test/DebugInfo/X86/dbg-value-isel.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-location.llllvm.src/test/DebugInfo/X86/dbg-value-location.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-range.llllvm.src/test/DebugInfo/X86/dbg-value-range.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-regmask-clobber.llllvm.src/test/DebugInfo/X86/dbg-value-regmask-clobber.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dbg-value-terminator.llllvm.src/test/DebugInfo/X86/dbg-value-terminator.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-info-blocks.llllvm.src/test/DebugInfo/X86/debug-info-blocks.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-loc-frame.llllvm.src/test/DebugInfo/X86/debug-loc-frame.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-ranges-offset.llllvm.src/test/DebugInfo/X86/debug-ranges-offset.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/deleted-bit-piece.llllvm.src/test/DebugInfo/X86/deleted-bit-piece.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dw_op_minus_direct.llllvm.src/test/DebugInfo/X86/dw_op_minus_direct.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.llllvm.src/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/earlydup-crash.llllvm.src/test/DebugInfo/X86/earlydup-crash.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/elf-names.llllvm.src/test/DebugInfo/X86/elf-names.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/fission-ranges.llllvm.src/test/DebugInfo/X86/fission-ranges.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/float_const.llllvm.src/test/DebugInfo/X86/float_const.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/float_const_loclist.llllvm.src/test/DebugInfo/X86/float_const_loclist.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/formal_parameter.llllvm.src/test/DebugInfo/X86/formal_parameter.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/ghost-sdnode-dbgvalues.llllvm.src/test/DebugInfo/X86/ghost-sdnode-dbgvalues.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/inlined-formal-parameter.llllvm.src/test/DebugInfo/X86/inlined-formal-parameter.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/live-debug-values.llllvm.src/test/DebugInfo/X86/live-debug-values.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/mi-print.llllvm.src/test/DebugInfo/X86/mi-print.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/misched-dbg-value.llllvm.src/test/DebugInfo/X86/misched-dbg-value.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/multiple-at-const-val.llllvm.src/test/DebugInfo/X86/multiple-at-const-val.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/nodebug_with_debug_loc.llllvm.src/test/DebugInfo/X86/nodebug_with_debug_loc.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/nophysreg.llllvm.src/test/DebugInfo/X86/nophysreg.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/partial-constant.llllvm.src/test/DebugInfo/X86/partial-constant.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pieces-1.llllvm.src/test/DebugInfo/X86/pieces-1.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pieces-2.llllvm.src/test/DebugInfo/X86/pieces-2.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pieces-3.llllvm.src/test/DebugInfo/X86/pieces-3.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pieces-4.llllvm.src/test/DebugInfo/X86/pieces-4.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pr28270.llllvm.src/test/DebugInfo/X86/pr28270.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/reference-argument.llllvm.src/test/DebugInfo/X86/reference-argument.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/rematerialize.llllvm.src/test/DebugInfo/X86/rematerialize.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/safestack-byval.llllvm.src/test/DebugInfo/X86/safestack-byval.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/single-dbg_value.llllvm.src/test/DebugInfo/X86/single-dbg_value.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/sroasplit-1.llllvm.src/test/DebugInfo/X86/sroasplit-1.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/sroasplit-2.llllvm.src/test/DebugInfo/X86/sroasplit-2.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/sroasplit-3.llllvm.src/test/DebugInfo/X86/sroasplit-3.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/sroasplit-4.llllvm.src/test/DebugInfo/X86/sroasplit-4.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/stack-value-dwarf2.llllvm.src/test/DebugInfo/X86/stack-value-dwarf2.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/stack-value-piece.llllvm.src/test/DebugInfo/X86/stack-value-piece.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/subreg.llllvm.src/test/DebugInfo/X86/subreg.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/subregisters.llllvm.src/test/DebugInfo/X86/subregisters.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/this-stack_value.llllvm.src/test/DebugInfo/X86/this-stack_value.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/union-const.llllvm.src/test/DebugInfo/X86/union-const.ll
The file was modified/llvm/trunk/test/Transforms/ADCE/debug-info-intrinsic.llllvm.src/test/Transforms/ADCE/debug-info-intrinsic.ll
The file was modified/llvm/trunk/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.llllvm.src/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
The file was modified/llvm/trunk/test/Transforms/BDCE/dbg-multipleuses.llllvm.src/test/Transforms/BDCE/dbg-multipleuses.ll
The file was modified/llvm/trunk/test/Transforms/BDCE/pr26587.llllvm.src/test/Transforms/BDCE/pr26587.ll
The file was modified/llvm/trunk/test/Transforms/Coroutines/coro-split-dbg.llllvm.src/test/Transforms/Coroutines/coro-split-dbg.ll
The file was modified/llvm/trunk/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.llllvm.src/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll
The file was modified/llvm/trunk/test/Transforms/DeadArgElim/dbginfo.llllvm.src/test/Transforms/DeadArgElim/dbginfo.ll
The file was modified/llvm/trunk/test/Transforms/DeadStoreElimination/inst-limits.llllvm.src/test/Transforms/DeadStoreElimination/inst-limits.ll
The file was modified/llvm/trunk/test/Transforms/GlobalOpt/2009-03-05-dbg.llllvm.src/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
The file was modified/llvm/trunk/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.llllvm.src/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
The file was modified/llvm/trunk/test/Transforms/Inline/alloca-dbgdeclare.llllvm.src/test/Transforms/Inline/alloca-dbgdeclare.ll
The file was modified/llvm/trunk/test/Transforms/Inline/ignore-debug-info.llllvm.src/test/Transforms/Inline/ignore-debug-info.ll
The file was modified/llvm/trunk/test/Transforms/Inline/local-as-metadata-undominated-use.llllvm.src/test/Transforms/Inline/local-as-metadata-undominated-use.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/debuginfo-dce.llllvm.src/test/Transforms/InstCombine/debuginfo-dce.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/debuginfo-skip.llllvm.src/test/Transforms/InstCombine/debuginfo-skip.ll
The file was modified/llvm/trunk/test/Transforms/LICM/debug-value.llllvm.src/test/Transforms/LICM/debug-value.ll
The file was modified/llvm/trunk/test/Transforms/LoopIdiom/debug-line.llllvm.src/test/Transforms/LoopIdiom/debug-line.ll
The file was modified/llvm/trunk/test/Transforms/LoopReroll/reroll_with_dbg.llllvm.src/test/Transforms/LoopReroll/reroll_with_dbg.ll
The file was modified/llvm/trunk/test/Transforms/LoopRotate/dbgvalue.llllvm.src/test/Transforms/LoopRotate/dbgvalue.ll
The file was modified/llvm/trunk/test/Transforms/LoopRotate/phi-dbgvalue.llllvm.src/test/Transforms/LoopRotate/phi-dbgvalue.ll
The file was modified/llvm/trunk/test/Transforms/LoopSimplify/dbg-loc.llllvm.src/test/Transforms/LoopSimplify/dbg-loc.ll
The file was modified/llvm/trunk/test/Transforms/LoopStrengthReduce/pr12018.llllvm.src/test/Transforms/LoopStrengthReduce/pr12018.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/dbg.value.llllvm.src/test/Transforms/LoopVectorize/dbg.value.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/debugloc.llllvm.src/test/Transforms/LoopVectorize/debugloc.ll
The file was modified/llvm/trunk/test/Transforms/Mem2Reg/ConvertDebugInfo.llllvm.src/test/Transforms/Mem2Reg/ConvertDebugInfo.ll
The file was modified/llvm/trunk/test/Transforms/Mem2Reg/debug-alloca-phi.llllvm.src/test/Transforms/Mem2Reg/debug-alloca-phi.ll
The file was modified/llvm/trunk/test/Transforms/MergeFunc/mergefunc-preserve-debug-info.llllvm.src/test/Transforms/MergeFunc/mergefunc-preserve-debug-info.ll
The file was modified/llvm/trunk/test/Transforms/ObjCARC/allocas.llllvm.src/test/Transforms/ObjCARC/allocas.ll
The file was modified/llvm/trunk/test/Transforms/ObjCARC/basic.llllvm.src/test/Transforms/ObjCARC/basic.ll
The file was modified/llvm/trunk/test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.llllvm.src/test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.ll
The file was modified/llvm/trunk/test/Transforms/SROA/dbg-single-piece.llllvm.src/test/Transforms/SROA/dbg-single-piece.ll
The file was modified/llvm/trunk/test/Transforms/SafeStack/X86/debug-loc-dynamic.llllvm.src/test/Transforms/SafeStack/X86/debug-loc-dynamic.ll
The file was modified/llvm/trunk/test/Transforms/SafeStack/X86/debug-loc2.llllvm.src/test/Transforms/SafeStack/X86/debug-loc2.ll
The file was modified/llvm/trunk/test/Transforms/Scalarizer/dbginfo.llllvm.src/test/Transforms/Scalarizer/dbginfo.ll
The file was modified/llvm/trunk/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.llllvm.src/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll
The file was modified/llvm/trunk/test/Transforms/SimplifyCFG/branch-fold-dbg.llllvm.src/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
The file was modified/llvm/trunk/test/Transforms/SimplifyCFG/hoist-dbgvalue.llllvm.src/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll
The file was modified/llvm/trunk/test/Transforms/SimplifyCFG/sink-common-code.llllvm.src/test/Transforms/SimplifyCFG/sink-common-code.ll
The file was modified/llvm/trunk/test/Transforms/StripSymbols/2010-06-30-StripDebug.llllvm.src/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll
The file was modified/llvm/trunk/test/Transforms/StripSymbols/strip-dead-debug-info.llllvm.src/test/Transforms/StripSymbols/strip-dead-debug-info.ll
The file was modified/llvm/trunk/test/Transforms/Util/simplify-dbg-declare-load.llllvm.src/test/Transforms/Util/simplify-dbg-declare-load.ll
The file was modified/llvm/trunk/test/Transforms/Util/split-bit-piece.llllvm.src/test/Transforms/Util/split-bit-piece.ll
The file was modified/llvm/trunk/test/Transforms/Util/strip-nonlinetable-debuginfo-loops.llllvm.src/test/Transforms/Util/strip-nonlinetable-debuginfo-loops.ll
The file was modified/llvm/trunk/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.llllvm.src/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll
The file was modified/llvm/trunk/unittests/Transforms/Utils/Cloning.cppllvm.src/unittests/Transforms/Utils/Cloning.cpp
Revision 309425 by abataev:
[SLP] Allow vectorization of the instruction from the same basic blocks only, NFC.

Summary:
After some changes in SLP vectorizer we missed some additional checks to
limit the instructions for vectorization. We should not perform analysis
of the instructions if the parent of instruction is not the same as the
parent of the first instruction in the tree or it was analyzed already.

Subscribers: mzolotukhin

Differential Revision: https://reviews.llvm.org/D34881
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cppllvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
Revision 309424 by morehouse:
Add end-to-end tests for overflows of byval arguments.

Summary:
Included is one test for passing structs by value and one test for
passing C++
objects by value.

Reviewers: eugenis, vitalybuka

Reviewed By: eugenis

Subscribers: srhines, kubamracek, llvm-commits

Differential Revision: https://reviews.llvm.org/D34827
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cccompiler-rt.src/test/asan/TestCases/pass-object-byval.cc
The file was added/compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cccompiler-rt.src/test/asan/TestCases/pass-struct-byval-uar.cc
The file was added/compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cccompiler-rt.src/test/asan/TestCases/pass-struct-byval.cc
Revision 309423 by saugustine:
Add clear_cache implementation for ppc64. Fix buffer to meet ppc64 alignment.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/builtins/clear_cache.ccompiler-rt.src/lib/builtins/clear_cache.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/clear_cache_test.ccompiler-rt.src/test/builtins/Unit/clear_cache_test.c
Revision 309422 by rnk:
Fix conditional tail call branch folding when both edges are the same

The conditional tail call logic did the wrong thing when both
destinations of a conditional branch were the same:

BB#1: derived from LLVM BB %entry
    Live Ins: %EFLAGS
    Predecessors according to CFG: BB#0
        JE_1 <BB#5>, %EFLAGS<imp-use,kill>
        JMP_1 <BB#5>

BB#5: derived from LLVM BB %sw.epilog
    Predecessors according to CFG: BB#1
        TCRETURNdi64 <ga:@mergeable_conditional_tailcall>, 0, ...

We would fold the JE_1 to a TCRETURNdi64cc, and then remove our BB#5
successor. Then BB#5 would be deleted as it had no predecessors, leaving
a dangling "JMP_1 <BB#5>" reference behind to cause assertions later.

This patch checks that both conditional branch destinations are
different before doing the transform. The standard branch folding logic
is able to remove both the JMP_1 and the JE_1, and for my test case we
end up forming a better conditional tail call later.

Fixes PR33980
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/BranchFolding.cppllvm.src/lib/CodeGen/BranchFolding.cpp
The file was added/llvm/trunk/test/CodeGen/X86/conditional-tailcall-samedest.mirllvm.src/test/CodeGen/X86/conditional-tailcall-samedest.mir
Revision 309420 by morehouse:
Revert r308677.

Incorrect directories were created by the patch.
Change TypePath in RepositoryPath in Workspace
The file was removed/compiler-rt/trunk/compiler-rtcompiler-rt.src/compiler-rt
Revision 309419 by arsenm:
AMDGPU: Look through a bitcast user of an out argument

This allows handling of a lot more of the interesting
cases in Blender. Most of the large functions unlikely
to be inlined have this pattern.

This is a special case for what clang emits for OpenCL 3
element vectors. Annoyingly, these are emitted as
<3 x elt>* pointers, but accessed as <4 x elt>* operations.
This also needs to handle cases where a struct containing
a single vector is used.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cppllvm.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.llllvm.src/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/rewrite-out-arguments.llllvm.src/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
Revision 309417 by mcrosier:
[Value Tracking] Refactor icmp comparison logic into helper. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cppllvm.src/lib/Analysis/ValueTracking.cpp
Revision 309416 by arsenm:
AMDGPU: Add pass to replace out arguments

It is better to return arguments directly in registers
if we are making a call rather than introducing expensive
stack usage. In one of sample compile from one of
Blender's many kernel variants, this fires on about
~20 different functions. Future improvements may be to
recognize simple cases where the pointer is indexing a small
array. This also fails when the store to the out argument
is in a separate block from the return, which happens in
a few of the Blender functions. This should also probably
be using MemorySSA which might help with that.

I'm not sure this is correct as a FunctionPass, but
MemoryDependenceAnalysis seems to not work with
a ModulePass.

I'm also not sure where it should run.I think it should
run  before DeadArgumentElimination, so maybe either
EP_CGSCCOptimizerLate or EP_ScalarOptimizerLate.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.hllvm.src/lib/Target/AMDGPU/AMDGPU.h
The file was added/llvm/trunk/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cppllvm.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cppllvm.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/CMakeLists.txtllvm.src/lib/Target/AMDGPU/CMakeLists.txt
The file was added/llvm/trunk/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.llllvm.src/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/rewrite-out-arguments.llllvm.src/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
Revision 309415 by yamauchi:
[LVI] Constant-propagate a zero extension of the switch condition value through case edges

Summary:
LazyValueInfo currently computes the constant value of the switch condition through case edges, which allows the constant value to be propagated through the case edges.

But we have seen a case where a zero-extended value of the switch condition is used past case edges for which the constant propagation doesn't occur.

This patch adds a small logic to handle such a case in getEdgeValueLocal().

This is motivated by the Python 2.7 eval loop in PyEval_EvalFrameEx() where the lack of the constant propagation causes longer live ranges and more spill code than necessary.

With this patch, we see that the code size of PyEval_EvalFrameEx() decreases by ~5.4% and a performance test improves by ~4.6%.




Reviewers: wmi, dberlin, sanjoy

Reviewed By: sanjoy

Subscribers: davide, davidxl, llvm-commits

Differential Revision: https://reviews.llvm.org/D34822
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/LazyValueInfo.cppllvm.src/lib/Analysis/LazyValueInfo.cpp
The file was modified/llvm/trunk/test/Transforms/CorrelatedValuePropagation/range.llllvm.src/test/Transforms/CorrelatedValuePropagation/range.ll
Revision 309407 by aoli:
[CMake] Add Android toolchain CMake cache files.

Summary: Thoes files are used to build Android toolchain. D32816 makes it possible to build runtimes for targets.

Reviewers: beanz, srhines

Reviewed By: srhines

Subscribers: pirama, jroelofs, srhines, cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D33561
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/cmake/caches/Android-stage2.cmakeclang.src/cmake/caches/Android-stage2.cmake
The file was added/cfe/trunk/cmake/caches/Android.cmakeclang.src/cmake/caches/Android.cmake
Revision 309406 by George Karpenkov:
[sanitizers test CMake] further refactor testing CMake for tsan

TSan tests on Darwin first link all libraries into a static archive file.
With this change, the linking is done once per all architecture,
and previously the linking step was repeated per each architecture per
each add_tsan_test call.
Furthermore, the code is cleared up.

Differential Revision: https://reviews.llvm.org/D35913
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/tests/CMakeLists.txtcompiler-rt.src/lib/tsan/tests/CMakeLists.txt
Revision 309405 by George Karpenkov:
[sanitizer tests CMake] Factor out CMake logic for compiling sanitizer tests

Currently there's a large amount of CMake logic duplication for
compiling sanitizer tests.
If we add more sanitizers, the duplication will get even worse.

This change factors out common compilation commands into a macro
available to all sanitizers.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmakecompiler-rt.src/cmake/Modules/CompilerRTCompile.cmake
The file was modified/compiler-rt/trunk/lib/asan/tests/CMakeLists.txtcompiler-rt.src/lib/asan/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/msan/tests/CMakeLists.txtcompiler-rt.src/lib/msan/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/tsan/tests/CMakeLists.txtcompiler-rt.src/lib/tsan/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/xray/tests/CMakeLists.txtcompiler-rt.src/lib/xray/tests/CMakeLists.txt