154371 Commits

Author SHA1 Message Date
Vivek Pandya
bb8204f26f This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352
It enables OptimizationRemarkEmitter::allowExtraAnalysis and MachineOptimizationRemarkEmitter::allowExtraAnalysis to return true not only for -fsave-optimization-record but when specific remarks are requested with
command line options.
The diagnostic handler used to be callback now this patch adds a class
DiagnosticHandler. It has virtual method to provide custom diagnostic handler
and methods to control which particular remarks are enabled. 
However LLVM-C API users can still provide callback function for diagnostic handler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313382 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 19:30:59 +00:00
Sam Clegg
d3108e59e5 [WebAssembly] MC: Fix crash in getProvitionalValue on weak references
- Create helper function for resolving weak references.
- Add test that preproduces the crash.

Differential Revision: https://reviews.llvm.org/D37916

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313381 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 19:22:01 +00:00
Krzysztof Parzyszek
22b2c0d9c2 Fix selecting legal types in TypeInfer::getLegalTypes
Collect all legal types for all modes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313380 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:58:07 +00:00
Hans Wennborg
126ab47270 Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs."
This caused PR34629: asserts firing when building Chromium. It also broke some
buildbots building test-suite as reported on the commit thread.

> Summary:
>    1/  Operand folding during complex pattern matching for LEAs has been
>        extended, such that it promotes Scale to accommodate similar operand
>        appearing in the DAG.
>        e.g.
>           T1 = A + B
>           T2 = T1 + 10
>           T3 = T2 + A
>        For above DAG rooted at T3, X86AddressMode will no look like
>           Base = B , Index = A , Scale = 2 , Disp = 10
>
>    2/  During OptimizeLEAPass down the pipeline factorization is now performed over LEAs
>        so that if there is an opportunity then complex LEAs (having 3 operands)
>        could be factored out.
>        e.g.
>           leal 1(%rax,%rcx,1), %rdx
>           leal 1(%rax,%rcx,2), %rcx
>        will be factored as following
>           leal 1(%rax,%rcx,1), %rdx
>           leal (%rdx,%rcx)   , %edx
>
>    3/ Aggressive operand folding for AM based selection for LEAs is sensitive to loops,
>       thus avoiding creation of any complex LEAs within a loop.
>
> Reviewers: lsaba, RKSimon, craig.topper, qcolombet
>
> Reviewed By: lsaba
>
> Subscribers: spatel, igorb, llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D35014

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313376 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:40:26 +00:00
Adrian Prantl
ab804ca68c Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313375 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:35:37 +00:00
Eric Beckmann
de72ac6394 Fix Bug 30978 by emitting cv file checksums.
Summary:
The checksums had already been placed in the IR, this patch allows
MCCodeView to actually write it out to an MCStreamer.

Subscribers: llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D37157

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313374 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:20:28 +00:00
Craig Topper
46f3eda2f5 [X86] Prefer VPERMQ over VPERM2F128 for any unary shuffle, not just the ones that can be done with a insertf128
The early out for AVX2 in lowerV2X128VectorShuffle is positioned in a weird spot below some shuffle mask equivalency checks.

But I think we want to allow VPERMQ for any unary shuffle.

Differential Revision: https://reviews.llvm.org/D37893

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313373 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:11:13 +00:00
Adrian Prantl
dab0bf59da llvm-dwarfdump: Factor out the printing of the section header (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313370 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 17:39:50 +00:00
Simon Pilgrim
8879f2a5be Fix typo in vector reduction costs comment. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313368 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 17:28:07 +00:00
Craig Topper
d77fd58694 [X86] Use SDNode::ops() instead of makeArrayRef and op_begin(). NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313367 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 17:09:05 +00:00
Craig Topper
dca8ff7a7d [X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build vectors
When handling a v64i1 build vector of constants on 32-bit targets we were creating an illegal i64 constant that we then bitcasted back to v64i1. We need to instead create two 32-bit constants, bitcast them to v32i1 and concat the result. We should also take care to handle the halves being all zeros/ones after the split.

This patch splits the build vector and then recursively lowers the two pieces. This allows us to handle the all ones and all zeros cases with minimal effort. Ideally we'd just do the split and concat, and let lowering get called again on the new nodes, but getNode has special handling for CONCAT_VECTORS that reassembles the pieces back into a single BUILD_VECTOR. Hopefully the two temporary BUILD_VECTORS we had to create to do this that don't get returned don't cause any issues.

Fixes PR34605.

Differential Revision: https://reviews.llvm.org/D37858

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313366 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 17:09:03 +00:00
Craig Topper
566eb704ab [X86] Add isel pattern infrastructure to begin recognizing when we're inserting 0s into the upper portions of a vector register and the producing instruction as already produced the zeros.
Currently if we're inserting 0s into the upper elements of a vector register we insert an explicit move of the smaller register to implicitly zero the upper bits. But if we can prove that they are already zero we can skip that. This is based on a similar idea of what we do to avoid emitting explicit zero extends for GR32->GR64.

Unfortunately, this is harder for vector registers because there are several opcodes that don't have VEX equivalent instructions, but can write to XMM registers. Among these are SHA instructions and a MMX->XMM move. Bitcasts can also get in the way.

So for now I'm starting with explicitly allowing only VPMADDWD because we emit zeros in combineLoopMAddPattern. So that is placing extra instruction into the reduction loop.

I'd like to allow PSADBW as well after D37453, but that's currently blocked by a bitcast. We either need to peek through bitcasts or canonicalize insert_subvectors with zeros to remove bitcasts on the value being inserted.

Longer term we should probably have a cleanup pass that removes superfluous zeroing moves even when the producer is in another basic block which is something these isel tricks can't do. See PR32544.

Differential Revision: https://reviews.llvm.org/D37653

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313365 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 17:09:00 +00:00
Anna Thomas
3c71a6c431 [RuntimeUnroll] Add heuristic for unrolling multi-exit loop
Add a profitability heuristic to enable runtime unrolling of multi-exit
loop: There can be atmost two unique exit blocks for the loop and the
second exit block should be a deoptimizing block. Also, there can be one
other exiting block other than the latch exiting block. The reason for
the latter is so that we limit the number of branches in the unrolled
code to being at most the unroll factor.  Deoptimizing blocks are rarely
taken so these additional number of branches created due to the
unrolling are predictable, since one of their target is the deopt block.

Reviewers: apilipenko, reames, evstupac, mkuper

Subscribers: llvm-commits

Reviewed by: reames

Differential Revision: https://reviews.llvm.org/D35380

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313363 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 15:56:05 +00:00
Krzysztof Parzyszek
a50c5eba3e [Hexagon] Switch to parameterized register classes for HVX
This removes the duplicate HVX instruction set for the 128-byte mode.
Single instruction set now works for both modes (64- and 128-byte).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313362 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 15:46:05 +00:00
Ilya Biryukov
ae3278a7b7 Added optional validation of svn sources to Dockerfiles.
Summary: This commit also adds a script to compute sha256 hashes of llvm checkouts.

Reviewers: klimek, mehdi_amini

Reviewed By: klimek

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D37099

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313359 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 13:35:54 +00:00
Anna Thomas
f6d994c3c5 [RuntimeUnrolling] Populate the VMap entry correctly when default generated through lookup
During runtime unrolling on loops with multiple exits, we update the
exit blocks with the correct phi values from both original and remainder
loop.
In this process, we lookup the VMap for the mapped incoming phi values,
but did not update the VMap if a default entry was generated in the VMap
during the lookup. This default value is generated when constants or
values outside the current loop are looked up.
This patch fixes the assertion failure when null entries are present in
the VMap because of this lookup. Added a testcase that showcases the
problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313358 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 13:29:33 +00:00
Alexander Kornienko
4cbf8f8935 Remove unneeded forward declaration. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313357 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 11:45:57 +00:00
Alexander Kornienko
1a8d4f9fc9 Add a ReleaseNotes blurb for Execute.*Wait API change
... in r313155, r313156.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313356 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 11:45:30 +00:00
Simon Pilgrim
fc31426768 [X86][SSE] Add test cases vector for integer multiplies
Mainly inspired by PR34474 / D37896

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313353 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 11:17:42 +00:00
Ilya Biryukov
653f60b6a3 Revert "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops."
This reverts commit r313348.

Reason: it caused buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313352 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 10:15:00 +00:00
Sjoerd Meijer
7d677e7e2a [AArch64] allow v8f16 types when FullFP16 is supported
This adds support for allowing v8f16 vector types, thus avoiding conversions
from/to single precision for these types. This is a follow up patch of
commits r311154 and r312104, which added support for scalars and v4f16
types, respectively.

Differential Revision: https://reviews.llvm.org/D37802


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313351 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 09:24:48 +00:00
Jonas Paulsson
79131591b6 Recommit "[RegAlloc] Make sure live-ranges reflect the state of the IR when
removing them"

This was temporarily reverted, but now that the fix has been commited (r313197)
it should be put back in place.

https://bugs.llvm.org/show_bug.cgi?id=34502

This reverts commit 9ef93d9dc4c51568e858cf8203cd2c5ce8dca796.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313349 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 07:47:38 +00:00
Dinar Temirbulatov
1dc1d99a0e [SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops.
Patch tries to improve vectorization of the following code:

void add1(int * __restrict dst, const int * __restrict src) {
  *dst++ = *src++;
  *dst++ = *src++ + 1;
  *dst++ = *src++ + 2;
  *dst++ = *src++ + 3;
}
Allows to vectorize even if the very first operation is not a binary add, but just a load.

Reviewers: spatel, mzolotukhin, mkuper, hfinkel, RKSimon, filcab, ABataev, davide

Subscribers: llvm-commits, RKSimon

Differential Revision: https://reviews.llvm.org/D28907


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313348 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 06:56:39 +00:00
Lang Hames
72e6ac3761 [ORC] Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313346 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 06:50:19 +00:00
Jatin Bhateja
37c3b169a5 [X86] PR32755 : Improvement in CodeGen instruction selection for LEAs.
Summary:
   1/  Operand folding during complex pattern matching for LEAs has been
       extended, such that it promotes Scale to accommodate similar operand
       appearing in the DAG.
       e.g.
          T1 = A + B
          T2 = T1 + 10
          T3 = T2 + A
       For above DAG rooted at T3, X86AddressMode will no look like
          Base = B , Index = A , Scale = 2 , Disp = 10

   2/  During OptimizeLEAPass down the pipeline factorization is now performed over LEAs
       so that if there is an opportunity then complex LEAs (having 3 operands)
       could be factored out.
       e.g.
          leal 1(%rax,%rcx,1), %rdx
          leal 1(%rax,%rcx,2), %rcx
       will be factored as following
          leal 1(%rax,%rcx,1), %rdx
          leal (%rdx,%rcx)   , %edx

   3/ Aggressive operand folding for AM based selection for LEAs is sensitive to loops,
      thus avoiding creation of any complex LEAs within a loop.

Reviewers: lsaba, RKSimon, craig.topper, qcolombet

Reviewed By: lsaba

Subscribers: spatel, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D35014

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313343 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 05:29:51 +00:00
Dinar Temirbulatov
16aa13f7f2 [SLPVectorizer] Remove duplicated functionality code in initScheduleData function, NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313341 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 04:31:54 +00:00
Martin Pelikan
4869e6a5b9 [XRay] fix and clarify comments in the log file decoder
Summary:
For readers unfamiliar with the XRay code base, reference the compiler-rt
implementation even though we're not allowed to share any code and explain
our little-endian views more clearly.

For code clarity either get rid of obvious comments or explain their
intentions, fix typos, correct coding style according to LLVM's standards
and manually CSE long expressions to point out it is the same expression.

Reviewers: dberris

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D34339

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313340 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 04:22:16 +00:00
Petr Hosek
03855b657f [Object] Fix missing arguments to getType and getSymbol in Elf_Rel_Impl
Somehow this was compiling without these methods having their arguments
passed to them. I used these methods in some code I wrote and it raised
an error on me. It appears no one else has used these methods let (LLD
uses setSymbolAndType however). This change resolves the issue.

Patch by Jake Ehrlich

Differential Revision: https://reviews.llvm.org/D35100

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313336 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 02:59:55 +00:00
Zachary Turner
b411a75bae Revert "[lit] Force site configs to run before source-tree configs"
This patch is still breaking several multi-stage compiler-rt bots.
I already know what the fix is, but I want to get the bots green
for now and then try re-applying in the morning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313335 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 02:56:40 +00:00
Tom Stellard
4d63668031 merge-request.sh: Update to use new "Fixed by Commit(s)" field
Summary:
This will be used instead of the url field to track which commits need
to be merged.

This patch also drops support for version 1.x of the bugzilla CLI tool.

Reviewers: hansw, hans

Reviewed By: hans

Subscribers: hans, llvm-commits

Differential Revision: https://reviews.llvm.org/D37786

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313334 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 02:25:22 +00:00
Reid Kleckner
f9c1d433fb [cmake] Fix a variable shadowing bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313331 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 01:18:46 +00:00
Reid Kleckner
89921cc8f5 [codeview] Use a type index of zero for static method "this" types
Otherwise VS won't show anything in the autos or watch window of static
methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313329 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:59:07 +00:00
Zachary Turner
3cdfdbb5e8 [lit] Revert "Add a lit.llvm module that all llvm projects can use"
This is breaking due to some changes I forgot to merge in, so I'm
temporarily reverting them until I can re-test that this works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313328 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:56:08 +00:00
Zachary Turner
065192f667 [lit] Remove some code that I forgot to remove.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313326 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:43:38 +00:00
Zachary Turner
d5831d289e [lit] Add a lit.llvm module that all test suites can use.
To further reduce duplicate code, this patch introduces a module
that configs can simply import and get access to a lot of useful
functionality such as setting up paths, adding features that are
useful across all projects, and other utility-type functions.

For now this only updates llvm's suite to use this new library,
but subsequent patches will update other projects.

Differential Revision: https://reviews.llvm.org/D37778

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313325 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:34:00 +00:00
Alina Sbirlea
154124adc3 Refactor collectChildrenInLoop to LoopUtils [NFC]
Summary: Move to LoopUtils method that collects all children of a node inside a loop.

Reviewers: majnemer, sanjoy

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D37870

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313322 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:04:16 +00:00
Sam Clegg
0928882df3 [WebAssembly] Use a separate wasm data segment for each global symbol
This is stepping stone towards honoring -fdata-sections
and letting the assembler decide how many wasm data
segments to create.

Differential Revision: https://reviews.llvm.org/D37834

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313313 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 23:07:53 +00:00
Eric Beckmann
fa58033db5 Fix bug 34608 by moving private header out of public header.
WindowsManifestMerger.h should not include llvm/Config/config.h, since it is private.  The include has been moved to the source instead.

Summary:
The checksums had already been placed in the IR, this patch allows
MCCodeView to actually write it out to an MCStreamer.

Move private config.h header dependency out of public header file.

Addresses Bug 34608

Subscribers: javed.absar, hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D37863

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313312 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 23:01:13 +00:00
Craig Topper
44e437e6cc [X86] Remove an unnecessary SmallVector from LowerBUILD_VECTOR.
I think this may have existed to convert from SDUse to SDValue, but it doesn't look like its needed now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313311 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 22:47:59 +00:00
Jan Sjodin
ac413e0287 Fix warnings in r313297.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313302 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 21:49:52 +00:00
Zachary Turner
b0f4ffc013 [lit] Fix some windows line endings that snuck in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313301 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 21:32:13 +00:00
Matt Arsenault
11283fb2c8 AMDGPU: Fix violating constant bus restriction
You can't use madmk/madmk if it already uses an SGPR input.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313298 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 20:54:29 +00:00
Jan Sjodin
028255f1f7 Add AddresSpace to PseudoSourceValue.
Differential Revision: https://reviews.llvm.org/D35089



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313297 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 20:53:51 +00:00
Krzysztof Parzyszek
c84b8593fb Subtarget support for parameterized register class information
Implement "checkFeatures" and emitting HW mode check code.

Differential Revision: https://reviews.llvm.org/D31959


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313295 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 20:44:20 +00:00
Guozhi Wei
5cf5798b90 [TargetTransformInfo] Detect 0 latency instructions
For instructions that unlikely generate machine instructions, they should also have 0 latency.

Differential Revision: https://reviews.llvm.org/D37833



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313288 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 19:20:02 +00:00
Benjamin Kramer
07d86e274d Remove usages of deprecated std::unary_function and std::binary_function.
These are removed in C++17. We still have some users of
unary_function::argument_type, so just spell that typedef out. No
functionality change intended.

Note that many of the argument types are actually wrong :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313287 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 18:33:25 +00:00
Matt Arsenault
4d43fa8b05 AMDGPU: Fix assert on alloca of array of struct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313282 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 18:02:29 +00:00
Simon Dardis
535c6277cd [bpf] Fix test to always use little endian.
r313055 broke the big endian buildbots as the CHECK lines contained little
endian data but -triple bpf uses the host endian.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313281 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 17:55:50 +00:00
Jonas Devlieghere
c189ccb9a2 [test] Fix TestDWARFDieRangeInfoIntersects
Fixes heap buffer overflow triggered in DWARF verifier, detected by ASAN.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313280 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 17:46:23 +00:00
Matt Arsenault
c6fa88b24e AMDGPU: Stop modifying SP in call sequences
Because the stack growth direction and addressing is done
in the same direction, modifying SP at the beginning of the
call sequence was incorrect. If we had a stack passed argument,
we would end up skipping that number of bytes before pushing
arguments, leaving unused/inconsistent space.

The callee creates fixed stack objects in its frame, so
the space necessary for these is already logically allocated
in the callee, so we just let the callee increment SP if
it really requires it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313279 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 17:37:40 +00:00