144551 Commits

Author SHA1 Message Date
Ahmed Bougacha
9351d2538c [Support] Accept macosx triple as 'darwin' in Host unittest. NFC.
If LLVM was configured with an x86_64-apple-macosx host triple, this
test would fail, as the API works but the triple isn't in the whitelist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293990 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 01:32:39 +00:00
Marcos Pividori
045de6fddb [sanitizer coverage] Fix Instrumentation to work on Windows.
On Windows, the symbols "___stop___sancov_guards" and "___start___sancov_guards"
are not defined automatically. So, we need to take a different approach.
We define 3 sections:

 Section ".SCOV$A" will only hold a variable ___start___sancov_guard.
 Section ".SCOV$M" will hold the main data.
 Section ".SCOV$Z" will only hold a variable ___stop___sancov_guards.

When linking, they will be merged sorted by the characters after the $, so we
can use the pointers of the variables ___[start|stop]___sancov_guard to know the
actual range of addresses of that section.

In this diff, I updated instrumentation to include all the guard arrays in
section ".SCOV$M".

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293987 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 01:08:06 +00:00
Matt Arsenault
52b8adef73 AMDGPU: Fold fneg into fmin/fmax_legacy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293972 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 00:51:50 +00:00
David Blaikie
90453c8d1a DebugInfo: ensure type and namespace names are included in pubnames/pubtypes even when they are only present in type units
While looking to add support for placing singular types (types that will
only be emitted in one place (such as attached to a strong vtable or
explicit template instantiation definition)) not in type units (since
type units have overhead) I stumbled across that change causing an
increase in pubtypes.

Turns out we were missing some types from type units if they were only
referenced from other type units and not from the debug_info section.

This fixes that, following GCC's line of describing the offset of such
entities as the CU die (since there's no compile unit-relative offset
that would describe such an entity - they aren't in the CU). Also like
GCC, this change prefers to describe the type stub within the CU rather
than the "just use the CU offset" fallback where possible. This may give
the DWARF consumer some opportunity to find the extra info in the type
stub - though I'm not sure GDB does anything with this currently.

The size of the pubnames/pubtypes sections now match exactly with or
without type units enabled.

This nearly triples (+189%) the pubtypes section for a clang self-host
and grows pubnames by 0.07% (without compression). For a total of 8%
increase in debug info sections of the objects of a Split DWARF build
when using type units.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293971 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 00:44:18 +00:00
Mehdi Amini
bd57345762 [ThinLTO] Add an auto-hide feature
When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

This is a recommit of r293912 after fixing build failures,
and a recommit of r293918 after fixing LLD tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293970 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 00:32:38 +00:00
Craig Topper
009a7ee816 [X86] Mark 256-bit and 512-bit INSERT_SUBVECTOR operations as legal and remove the custom lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293969 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 00:24:49 +00:00
Matt Arsenault
1c3956ed62 AMDGPU: Fold fneg into fminnum/fmaxnum
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293968 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-03 00:23:15 +00:00
Konstantin Zhuravlyov
ce0fa7d2ba llvm-readobj: fix next note entry calculation and print unknown note types
Differential Revision: https://reviews.llvm.org/D29131


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293964 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 23:44:49 +00:00
Matt Arsenault
aa5760346f AMDGPU: Check if users of fneg can fold mods
In multi-use cases this can save a few instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293962 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 23:21:23 +00:00
Mehdi Amini
5674a467ef Revert "[ThinLTO] Add an auto-hide feature"
This reverts commit r293918, one lld test does not pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293961 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 23:20:36 +00:00
Bob Haarman
b074e3f115 [lto] added getCOFFWeakExternalFallback
Summary: This allows clients of the LTO API to determine the name of the fallback symbol for COFF weak externals.

Reviewers: pcc

Reviewed By: pcc

Subscribers: mehdi_amini

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293960 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 23:10:22 +00:00
Bob Haarman
ea59150166 [lto] add getLinkerOpts()
Summary: Some compilers, including MSVC and Clang, allow linker options to be specified in source files. In the legacy LTO API, there is a getLinkerOpts() method that returns linker options for the bitcode module being processed. This change adds that method to the new API, so that the COFF linker can get the right linker options when using the new LTO API.

Reviewers: pcc, ruiu, mehdi_amini, tejohnson

Reviewed By: pcc

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293950 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 23:00:49 +00:00
Eugene Zelenko
5fcc26dee3 [X86] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293949 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 22:55:55 +00:00
Rafael Espindola
9e8d3ed3fc Relax test so that it passes on OS X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293946 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 22:08:25 +00:00
Reid Kleckner
40a18171ba [X86] Avoid sorted order check in release builds
Effectively reverts r290248 and fixes the unused function warning with
ifndef NDEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293945 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 22:06:30 +00:00
Craig Topper
5b6f1112aa [X86] Move turning 256-bit INSERT_SUBVECTORS into BLENDI from legalize to DAG combine.
On one test this seems to have given more chance for DAG combine to do other INSERT_SUBVECTOR/EXTRACT_SUBVECTOR combines before the BLENDI was created. Looks like we can still improve more by teaching DAG combine to optimize INSERT_SUBVECTOR/EXTRACT_SUBVECTOR with BLENDI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293944 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 22:02:57 +00:00
Reid Kleckner
b084c50312 [CodeGen] Remove dead call-or-prologue enum from CCState
This enum has been dead since Olivier Stannard re-implemented ARM byval
handling in r202985 (2014).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293943 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 21:58:22 +00:00
Xinliang David Li
050d2a7ccb [PGO] internal option cleanups
1. Added comments for options
2. Added missing option cl::desc field
3. Uniified function filter option for graph viewing.
   Now PGO count/raw-counts share the same
   filter option: -view-bfi-func-name=.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293938 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 21:29:17 +00:00
Rafael Espindola
7931a61c18 Change how we handle section symbols on ELF.
On ELF every section can have a corresponding section symbol. When in
an assembly file we have

.quad .text

the '.text' refers to that symbol.

The way we used to handle them is to leave .text an undefined symbol
until the very end when the object writer would map them to the
actual section symbol.

The problem with that is that anything before the end would see an
undefined symbol. This could result in bad diagnostics
(test/MC/AArch64/label-arithmetic-diags-elf.s), or incorrect results
when using the asm streamer (est/MC/Mips/expansion-jal-sym-pic.s).

Fixing this will also allow using the section symbol earlier for
setting sh_link of SHF_METADATA sections.

This patch includes a few hacks to avoid changing our behaviour when
handling conflicts between section symbols and other symbols. I
reported pr31850 to track that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293936 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 21:26:06 +00:00
Javed Absar
f497270e32 [ARM] Classification Improvements to ARM Sched-Model. NFCI.
This is the second in the series of patches to enable adding
of machine sched-models for ARM processors easier and compact.
This patch focuses on integer instructions and adds missing
sched definitions.

Reviewers: rovka, rengolin
Differential Revision: https://reviews.llvm.org/D29127



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293935 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 21:08:12 +00:00
Quentin Colombet
5340452c64 [LiveRangeEdit] Don't mess up with LiveInterval when a new vreg is created.
In r283838, we added the capability of splitting unspillable register.
When doing so we had to make sure the split live-ranges were also
unspillable and we did that by marking the related live-ranges in the
delegate method that is called when a new vreg is created.
However, by accessing the live-range there, we also triggered their lazy
computation (LiveIntervalAnalysis::getInterval) which is not what we
want in general. Indeed, later code in LiveRangeEdit is going to build
the live-ranges this lazy computation may mess up that computation
resulting in assertion failures. Namely, the createEmptyIntervalFrom
method expect that the live-range is going to be empty, not computed.

Thanks to Mikael Holmén <mikael.holmen@ericsson.com> for noticing and
reporting the problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293934 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 20:44:36 +00:00
Krzysztof Parzyszek
e14e1120ed [Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructions
Patch by Colin LeMahieu.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293933 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 20:35:12 +00:00
Michael Kuperstein
a7092d68da [X86] Add costs for non-AVX512 single-source permutation integer shuffles
Differential Revision: https://reviews.llvm.org/D29416


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293932 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 20:27:13 +00:00
Krzysztof Parzyszek
42f1fb1252 [Hexagon] Fix relocation kind for extended predicated calls
Patch by Sid Manning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293931 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 20:21:56 +00:00
Krzysztof Parzyszek
4dfaf93885 [Hexagon] Remove A4_ext_* pseudo instructions
Patch by Colin LeMahieu.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293929 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:58:22 +00:00
Kostya Serebryany
5459106ddf [libFuzzer] reorganize the tracing code to make it easier to experiment with inlined coverage instrumentation. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293928 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:56:01 +00:00
Krzysztof Parzyszek
4ea8989ed6 [Hexagon] Fix insertBranch for loops with multiple ENDLOOP instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293925 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:36:37 +00:00
Dan Gohman
e56a9ab847 [WebAssembly] Add instruction definitions for drop and get/set_global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293922 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:29:44 +00:00
Xinliang David Li
53438cdcee [PGO] make graph view internal options available for all builds
Differential Revision: https://reviews.llvm.org/D29259


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293921 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:18:56 +00:00
Marcos Pividori
ebf6feac60 [libFuzzer] Properly handle exceptions with UnhandledExceptionFilter.
Use SetUnhandledExceptionFilter instead of AddVectoredExceptionHandler.

According to the documentation on Structured Exception Handling, this is the
order for the Exception Dispatching:
+ If the process is being debugged, the system notifies the debugger.
+ The Vectored Exception Handler is called.
+ The system attempts to locate a frame-based exception handler by searching the
 stack frames of the thread in which the exception occurred.
+ If no frame-based handler can be found, the UnhandledExceptionFilter filter is
 called.
+ Default handling based on the exception type.

So, similar to what we do for asan, we should use SetUnhandledExceptionFilter
instead of AddVectoredExceptionHandler, so user's code that is being fuzzed can
execute frame-based exception handlers before we catch them . We want to catch
unhandled exceptions, not all the exceptions.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293920 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:07:53 +00:00
Peter Collingbourne
1d1bfded4b FunctionImport: Remove the -disable-force-link-odr flag and change importFunctions to never force link.
This removes some functionality that was only being used by tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293919 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:42:25 +00:00
Mehdi Amini
20af8a7bb3 [ThinLTO] Add an auto-hide feature
When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

This is a recommit of r293912 after fixing build failures.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293918 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:31:35 +00:00
Simon Pilgrim
2a8f190124 [X86][XOP] Added FIXME comments to missed shuffle combine opportunities
Requested by @silvas

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293916 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:26:28 +00:00
Nirav Dave
529986a15d Revert "In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled."
This reverts commit r293893 which is miscompiling lua on ARM and
bootstrapping for x86-windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293915 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:24:55 +00:00
Mehdi Amini
416bf90086 Revert "[ThinLTO] Add an auto-hide feature"
This reverts r293912, bots are broken.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293914 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:24:37 +00:00
Mehdi Amini
73efdef798 [ThinLTO] Add an auto-hide feature
When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293912 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 18:13:46 +00:00
Teresa Johnson
8ffb6b14bb [ThinLTO] PrintStatistics when we exit early for thinlto-index-only
Summary:
This is necessary to get stats from the ThinLink printed before the
early exit when compiling in a distributed build.

Reviewers: mehdi_amini

Subscribers: Prazek, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293908 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 17:33:53 +00:00
Simon Pilgrim
bb3b2011b8 [X86][SSE] Add test case for PR18344
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293907 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 17:23:57 +00:00
Simon Dardis
cdb5e1caf7 [mips] Expansion of BEQL and BNEL with immediate operands
Adds support for BEQL and BNEL macros with immediate operands.

Patch by: Srdjan Obucina

Reviewers: dsanders, zoran.jovanovic, vkalintiris, sdardis, obucina, seanbruno

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293905 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 16:13:49 +00:00
Amaury Sechet
8f643cf8d8 Use N0 instead of N->getOperand(0) in DagCombiner::visitAdd. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293903 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 16:07:44 +00:00
Kamil Rytarowski
a43456d7b9 Make llvm::call_once more convenient to reuse out of LLVM
Summary:
Currently users need to set call `using namespace llvm;`, with this change it's no longer needed.

Sponsored by <The NetBSD Foundation>

Reviewers: labath, emaste, joerg, clayborg, mehdi_amini

Reviewed By: mehdi_amini

Subscribers: chandlerc

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293902 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 16:06:33 +00:00
Teresa Johnson
2b81fe1bf3 [ThinLTO] Resolve old FIXME for alias importing in test
This FIXME was added with r265941 and should have been resolved with
r266517.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293901 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 15:58:06 +00:00
Jonas Paulsson
dc53ecaf9b [SystemZ] Add comment for ISD::FP_TO_UINT expansion.
(Copied from the fp-conv-10.ll test to SystemZISelLowering.cpp)

Review: Ulrich Weigand

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293900 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 15:42:14 +00:00
Krzysztof Parzyszek
07f9e9b603 [Hexagon] Emitting individual instructions without copying them
Patch by Colin LeMahieu.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293899 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 15:32:26 +00:00
Jun Bum Lim
0de282c060 [JumpThread] Enhance finding partial redundant loads by continuing scanning single predecessor
Summary: While scanning predecessors to find an available loaded value, if the predecessor has a single predecessor, we can continue scanning through the single predecessor.

Reviewers: mcrosier, rengolin, reames, davidxl, haicheng

Reviewed By: rengolin

Subscribers: zzheng, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293896 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 15:12:34 +00:00
Krzysztof Parzyszek
06ff48c9a0 [Hexagon] Rename TypeCOMPOUND to TypeCJ
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293894 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 15:03:30 +00:00
Nirav Dave
99b0642f83 In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled.
Recommiting after fixing X86 inc/dec chain bug.

    * Simplify Consecutive Merge Store Candidate Search

    Now that address aliasing is much less conservative, push through
    simplified store merging search and chain alias analysis which only
    checks for parallel stores through the chain subgraph. This is cleaner
    as the separation of non-interfering loads/stores from the
    store-merging logic.

    When merging stores search up the chain through a single load, and
    finds all possible stores by looking down from through a load and a
    TokenFactor to all stores visited.

    This improves the quality of the output SelectionDAG and the output
    Codegen (save perhaps for some ARM cases where we correctly constructs
    wider loads, but then promotes them to float operations which appear
    but requires more expensive constant generation).

    Some minor peephole optimizations to deal with improved SubDAG shapes (listed below)

    Additional Minor Changes:

      1. Finishes removing unused AliasLoad code

      2. Unifies the chain aggregation in the merged stores across code
         paths

      3. Re-add the Store node to the worklist after calling
         SimplifyDemandedBits.

      4. Increase GatherAllAliasesMaxDepth from 6 to 18. That number is
         arbitrary, but seems sufficient to not cause regressions in
         tests.

      5. Remove Chain dependencies of Memory operations on CopyfromReg
         nodes as these are captured by data dependence

      6. Forward loads-store values through tokenfactors containing
          {CopyToReg,CopyFromReg} Values.

      7. Peephole to convert buildvector of extract_vector_elt to
         extract_subvector if possible (see
         CodeGen/AArch64/store-merge.ll)

      8. Store merging for the ARM target is restricted to 32-bit as
         some in some contexts invalid 64-bit operations are being
         generated. This can be removed once appropriate checks are
         added.

    This finishes the change Matt Arsenault started in r246307 and
    jyknight's original patch.

    Many tests required some changes as memory operations are now
    reorderable, improving load-store forwarding. One test in
    particular is worth noting:

      CodeGen/PowerPC/ppc64-align-long-double.ll - Improved load-store
      forwarding converts a load-store pair into a parallel store and
      a memory-realized bitcast of the same value. However, because we
      lose the sharing of the explicit and implicit store values we
      must create another local store. A similar transformation
      happens before SelectionDAG as well.

    Reviewers: arsenm, hfinkel, tstellarAMD, jyknight, nhaehnle

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293893 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 14:39:42 +00:00
Nirav Dave
a25e135627 [X86,ISEL] Fix X86 increment chain dependence calculation
Merging Load-add-store pattern into a increment op previously dropped
the load's chain from the instructions dependence if the store is
chained to a TokenFactor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293892 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 14:39:26 +00:00
Diana Picus
c53d2b802e [ARM] GlobalISel: Lower pointer args and returns
It is important to change the ArgInfo's type from pointer to integer, otherwise
the CC assign function won't know what to do. Instead of hacking it up, we use
ComputeValueVTs and introduce some of the helpers that we will need later on for
lowering more complex types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293889 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 14:01:00 +00:00
Diana Picus
a2eb1ad2cd [ARM] GlobalISel: Error out instead of asserting
Allow unknown types in TLI.getValueType, otherwise we get asserts for certain
types that we do not support yet (instead of returning that we don't support
them and falling through the normal error path).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293888 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 14:00:54 +00:00