aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-06-24[SelectionDAG] set dereferenceable flag when expanding memcpy/memmoveupstream-mirrorHiroshi Inoue
When SelectionDAG expands memcpy (or memmove) call into a sequence of load and store instructions, it disregards dereferenceable flag even the source pointer is known to be dereferenceable. This results in an assertion failure if SelectionDAG commonizes a load instruction generated for memcpy with another load instruction for the source pointer. This patch makes SelectionDAG to set the dereferenceable flag for the load instructions properly to avoid the assertion failure. Differential Revision: https://reviews.llvm.org/D34467 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306209 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Ensure backends available in 'opt' are also available in 'bugpoint'Tobias Grosser
This patch links LLVM back-ends into bugpoint the same way they are already available in 'opt' and 'clang'. This resolves an inconsistency that allowed the use of LLVM backends in loadable modules that run in 'opt', but that would prevent the debugging of these modules with bugpoint due to unavailable / unresolved symbols. For e.g. In D31859, Polly requires the NVPTX back-end. Reviewers: hfinkel, bogner, chandlerc, grosser, Meinersbur Subscribers: bollu, mgorny, grosser, Meinersbur Tags: #polly Contributed by: Singapuram Sanjay Differential Revision: https://reviews.llvm.org/D32003 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306208 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[IR] Remove BinOp2_match and replace its usage with the more capable ↵Craig Topper
BinOpPred_match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306207 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[IR][AssumptionCache] Add m_Shift and m_BitwiseLogic matchers to replace a ↵Craig Topper
couple m_CombineOr Summary: m_CombineOr isn't very efficient. The code using it is also quite verbose. This patch adds m_Shift and m_BitwiseLogic matchers to make the using code more concise and improve the match efficiency. Reviewers: spatel, davide Reviewed By: davide Subscribers: davide, llvm-commits Differential Revision: https://reviews.llvm.org/D34593 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306206 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[ValueTracking][InstCombine] Use m_Shr instead m_CombineOr(m_LShr, m_AShr). NFCCraig Topper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306205 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[Analysis][Transforms] Use commutable matchers instead of m_CombineOr in a ↵Craig Topper
few places. NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306204 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Simplify the processFixupValue interface. NFC.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306202 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Add comments for OrderedInstruction. NFCXin Tong
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306201 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Remove a processFixupValue hack.Rafael Espindola
The intention of processFixupValue is not to redefine the semantics of MCExpr. It is odd enough that a expression lowers to a PCRel MCExpr or not depending on what it looks like. At least it is a local hack now. I left a fix for anyone trying to figure out what producers should be producing a different expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306200 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Add missing %s to RUN line.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306199 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Test the object file creation too.Rafael Espindola
This should *really* be a llvm-mc test, but the parser is broken. See PR33579 for the parser bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306198 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[CODE_OWNERS] Add my other email address since my commits are now using my ↵Craig Topper
work email. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306197 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Test commit: update my emailAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306196 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[InstCombine] Don't replace allocas with smaller globalsVitaly Buka
Summary: InstCombine replaces large allocas with small globals consts causing buffer overflows on valid code, see PR33372. This fix permits this optimization only if the global is dereference for alloca size. Fixes PR33372 Reviewers: eugenis, majnemer, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34311 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306194 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Make visible isDereferenceableAndAlignedPointer(..., const APInt &Size, ...)Vitaly Buka
Summary: Used by D34311 and D34467 Reviewers: hfinkel, efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34585 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306193 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Update constants in complex-return test to prevent reduction to smaller ↵Nirav Dave
constants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306192 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24[WebAssembly] Fix build after r306177Derek Schuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306190 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Remove redundant argument.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306189 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-24Fix use of uninitialized value.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306188 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[ORC] Re-apply r306166 and r306168 with fix for regression test.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306182 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Dump raw bytes of module symbols and debug chunks.Zachary Turner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306179 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23Move Value adjustment to applyFixup. NFC.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306178 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23ARM: move some logic from processFixupValue to applyFixup.Rafael Espindola
processFixupValue is called on every relaxation iteration. applyFixup is only called once at the very end. applyFixup is then the correct place to do last minute changes and value checks. While here, do proper range checks again for fixup_arm_thumb_bl. We used to do it, but dropped because of thumb2. We now do it again, but use the thumb2 range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306177 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23This reverts commit r306166 and r306168.Rafael Espindola
Revert "[ORC] Remove redundant semicolons from DEFINE_SIMPLE_CONVERSION_FUNCTIONS uses." Revert "[ORC] Move ORC IR layer interface from addModuleSet to addModule and fix the module type as std::shared_ptr<Module>." They broke ExecutionEngine/OrcMCJIT/test-global-ctors.ll on linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306176 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23Reland r306095: [mips] Fix reg positions in the aui/daui instructionsPetar Jovanovic
After fixing (r306173) a failing test in the lld test suite (r306173), reland r306095. Original commit message: [mips] Fix register positions in the aui/daui instructions Swapped the position of the rt and rs register in the aui/daui instructions for mips32r6 and mips64r6. With this change, the format of the generated instructions complies with specifications and GCC. Patch by Milos Stojanovic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306174 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-readobj] Fix COFF RVA table dumping bugReid Kleckner
We would return an error in getVaPtr if the RVA table being dumped was the last data in the .rdata section. Avoid the issue by subtracting one from the offset and adding it back to get an open interval again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306171 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[AArch64][Falkor] Remove some non-existent opcodes from sched detail ↵Geoff Berry
regexes. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306170 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[DebugInfo] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko
warnings; other minor fixes (NFC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306169 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[ORC] Remove redundant semicolons from DEFINE_SIMPLE_CONVERSION_FUNCTIONS uses.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306168 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Dump raw bytes of type and id records.Zachary Turner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306167 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[ORC] Move ORC IR layer interface from addModuleSet to addModule and fix theLang Hames
module type as std::shared_ptr<Module>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306166 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23Revert "[LoopDeletion] NFC: Move phi node value setting into prepass"Anna Thomas
This reverts commit r306157. It caused some timeouts in clang tests. Perhaps unreachable loops have far too many phi nodes. Reverting and investigating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306162 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Dump raw bytes of various DBI stream subsections.Zachary Turner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306160 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[MSP430] Fix data layout string.Vadzim Dambrouski
Summary: Without this patch some types have incorrect size and/or alignment according to the MSP430 EABI. Reviewers: asl, awygle Reviewed By: asl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34561 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306159 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23Add bitcast store-merge test.Nirav Dave
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306158 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[LoopDeletion] NFC: Move phi node value setting into prepassAnna Thomas
Currently, the implementation of delete dead loops has a special case when the loop being deleted is never executed. This special case (updating of exit block's incoming values for phis) can be run as a prepass for non-executable loops before performing the actual deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306157 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[APInt] Make the single word cases of isMaxSignedValue/isMinSignedValue just ↵Craig Topper
compare with the expected value rather than counting bits. NFCI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306155 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[APInt] Use trailing bit counting methods instead of population count method ↵Craig Topper
in isAllOnesValue, isMaxSigendValue, and isMinSignedValue. NFCI The trailing bit methods will early out if they find a bit of the opposite while popcount must always look at all bits. I also assume that more CPUs implement trailing bit counting with native instructions than population count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306154 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[APInt] Move the single word cases of countTrailingZeros and ↵Craig Topper
countLeadingOnes inline for consistency with countTrailingOnes and countLeadingZeros. NFCI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306153 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[CorrelatedValuePropagation] Fix typo in comment sense->since. NFCCraig Topper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306152 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[CorrelatedValuePropagation] Remove comment about iterating switch cases in ↵Craig Topper
reverse order. This is no longer being done after r298791. NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306151 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Show what blocks a stream occupies.Zachary Turner
This is useful when you want to look at a specific chunk of a stream or look for discontinuities, and you need to know the list of blocks occupied by a stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306150 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Dump raw bytes of pdb name map.Zachary Turner
This patch dumps the raw bytes of the pdb name map which contains the mapping of stream name to stream index for the string table and other reserved streams. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306148 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[opt-viewer] Remove positional arg checks (NFC)Brian Gesiak
Summary: opt-stats.py and opt-viewer.py's argument parsers both take a positional argument 'yaml_files'. Positional arguments in Python's argparse module are required by default, so the subsequent checks for `len(args.yaml_files) == 0` are unnecessary -- if the length was zero, then the call to `parser.parse_args()` would have thrown an error already. Because there is no way for `len(args.yaml_files)` to be zero at these points, removing the code is NFC. Reviewers: anemet, davidxl Reviewed By: anemet Subscribers: llvm-commits, fhahn Differential Revision: https://reviews.llvm.org/D34567 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306147 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Add the ability to dump raw bytes from the file.Zachary Turner
Normally we can only make sense of the content of a PDB in terms of streams and blocks, but in some cases it may be useful to dump bytes at a specific absolute file offset. For example, if you know that some interesting data is at a particular location and you want to see some surrounding data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306146 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23Revert "[Hexagon] Handle decreasing of stack alignment in frame lowering"Krzysztof Parzyszek
This breaks passing of aligned function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306145 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[AArch64] Prefer Bcc to CBZ/CBNZ/TBZ/TBNZ when NZCV flags can be set for "free".Chad Rosier
This patch contains a pass that transforms CBZ/CBNZ/TBZ/TBNZ instructions into a conditional branch (Bcc), when the NZCV flags can be set for "free". This is preferred on targets that have more flexibility when scheduling Bcc instructions as compared to CBZ/CBNZ/TBZ/TBNZ (assuming all other variables are equal). This can reduce register pressure and is also the default behavior for GCC. A few examples: add w8, w0, w1 -> cmn w0, w1 ; CMN is an alias of ADDS. cbz w8, .LBB_2 -> b.eq .LBB0_2 ; single def/use of w8 removed. add w8, w0, w1 -> adds w8, w0, w1 ; w8 has multiple uses. cbz w8, .LBB1_2 -> b.eq .LBB1_2 sub w8, w0, w1 -> subs w8, w0, w1 ; w8 has multiple uses. tbz w8, #31, .LBB6_2 -> b.ge .LBB6_2 In looking at all current sub-target machine descriptions, this transformation appears to be either positive or neutral. Differential Revision: https://reviews.llvm.org/D34220. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306144 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[X86] Fix SP adjustment in stack probes emitted on 32-bit Windows.whitequark
Commit r306010 adjusted the condition as follows: - if (Is64Bit) { + if (!STI.isTargetWin32()) { The intent was to preserve the behavior on all Windows platforms but extend the behavior on 64-bit Windows platforms to every other one. (Before r306010, emitStackProbeCall only ever executed when emitting code for Windows triples.) Unfortunately, if (Is64Bit && STI.isOSWindows()) is not the same as if (!STI.isTargetWin32()) because of the way isTargetWin32() is defined: bool isTargetWin32() const { return !In64BitMode && (isTargetCygMing() || isTargetKnownWindowsMSVC()); } In practice this broke the JIT tests on 32-bit Windows, which did not satisfy the new condition: LLVM :: ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll LLVM :: ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll LLVM :: ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll LLVM :: ExecutionEngine/MCJIT/test-loadstore.ll LLVM :: ExecutionEngine/OrcMCJIT/2003-01-15-AlignmentTest.ll LLVM :: ExecutionEngine/OrcMCJIT/2003-08-15-AllocaAssertion.ll LLVM :: ExecutionEngine/OrcMCJIT/2003-08-23-RegisterAllocatePhysReg.ll LLVM :: ExecutionEngine/OrcMCJIT/test-loadstore.ll because %esp was not updated correctly. The failures are only visible on a MSVC 2017 Debug build, for which we do not have bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306142 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[llvm-pdbutil] Add a function for formatting MSF data.Zachary Turner
The goal here is to make it possible to display absolute file offsets when dumping byets from an MSF. The problem is that when dumping bytes from an MSF, often the bytes will cross a block boundary and encounter a discontinuity. We can't use the normal formatBinary() function for this because this would just treat the sequence as entirely ascending, and not account out-of-order blocks. This patch adds a formatMsfData() function to our printer, and then uses this function to improve the output of the -stream-data command line option for dumping bytes from a particular stream. Test coverage is also expanded to make sure to include all possible scenarios of offsets, sizes, and crossing block boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306141 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-23[Hexagon] Remove call to printAndVerify from HexagonPassConfigKrzysztof Parzyszek
It causes an extra pass of the machine verifier to be added to the pass manager, and causes test/CodeGen/Generic/llc-start-stop.ll to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306140 91177308-0d34-0410-b5e6-96231b3b80d8