32928 Commits

Author SHA1 Message Date
Daniel Sanders 4d7894c6d8 [globalisel][tablegen] Add support for multi-insn emission
The importer will now accept nested instructions in the result pattern such as
(ADDWrr $a, (SUBWrr $b, $c)). This is only valid when the nested instruction
def's a single vreg and the parent instruction consumes a single vreg where a
nested instruction is specified. The importer will automatically create a vreg
to connect the two using the type information from the pattern. This vreg will
be constrained to the register classes given in the instruction definitions*.

* REG_SEQUENCE is explicitly rejected because of this. The definition doesn't
  constrain to a register class and it therefore needs special handling.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317117 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 19:57:57 +00:00
Petar Jovanovic bb38652ad4 Correct dwarf unwind information in function epilogue for X86
This patch aims to provide correct dwarf unwind information in function
epilogue for X86.

It consists of two parts. The first part inserts CFI instructions that set
appropriate cfa offset and cfa register in emitEpilogue() in
X86FrameLowering. This part is X86 specific.

The second part is platform independent and ensures that:

- CFI instructions do not affect code generation
- Unwind information remains correct when a function is modified by
  different passes. This is done in a late pass by analyzing information
  about cfa offset and cfa register in BBs and inserting additional CFI
  directives where necessary.

Changed CFI instructions so that they:

- are duplicable
- are not counted as instructions when tail duplicating or tail merging
- can be compared as equal

Added CFIInstrInserter pass:

- analyzes each basic block to determine cfa offset and register valid at
  its entry and exit
- verifies that outgoing cfa offset and register of predecessor blocks match
  incoming values of their successors
- inserts additional CFI directives at basic block beginning to correct the
  rule for calculating CFA

Having CFI instructions in function epilogue can cause incorrect CFA
calculation rule for some basic blocks. This can happen if, due to basic
block reordering, or the existence of multiple epilogue blocks, some of the
blocks have wrong cfa offset and register values set by the epilogue block
above them.

CFIInstrInserter is currently run only on X86, but can be used by any target
that implements support for adding CFI instructions in epilogue.


Patch by Violeta Vukobrat.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317100 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 16:04:11 +00:00
Geoff Berry 4bf7c62ec4 [BranchProbabilityInfo] Handle irreducible loops.
Summary:
Compute the strongly connected components of the CFG and fall back to
use these for blocks that are in loops that are not detected by
LoopInfo when computing loop back-edge and exit branch probabilities.

Reviewers: dexonsmith, davidxl

Subscribers: mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317094 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 15:16:50 +00:00
NAKAMURA Takumi 598658d792 Fix warnings discovered by rL317076. [-Wunused-private-field]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317091 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 13:47:55 +00:00
NAKAMURA Takumi 07ea6bb2fb Reformat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317078 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 05:14:35 +00:00
NAKAMURA Takumi 89f198924d Revert rL317019, "[ADT] Split optional to only include copy mechanics and dtor for non-trivial types."
Seems g++-4.8 (eg. Ubuntu 14.04) doesn't like this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317077 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 05:14:31 +00:00
Peter Collingbourne fee1f226fd Object: Move some code from ELF.h into ELF.cpp.
Differential Revision: https://reviews.llvm.org/D39271

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317046 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 22:49:23 +00:00
Peter Collingbourne 15227dba51 Inline compareAddr function into its only caller. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317045 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 22:49:09 +00:00
Benjamin Kramer 3f39bd2824 Revert "[DWARF] Now that Optional is standard layout, put it into an union instead of splatting it."
GCC doesn't like it. This reverts commit r317028.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317030 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 19:55:08 +00:00
Benjamin Kramer 159d0eccfe [DWARF] Now that Optional is standard layout, put it into an union instead of splatting it.
No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317028 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 19:40:03 +00:00
Benjamin Kramer cb48b14a4f [ADT] Split optional to only include copy mechanics and dtor for non-trivial types.
This makes uses of Optional more transparent to the compiler (and
clang-tidy) and generates slightly smaller code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317019 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 18:35:54 +00:00
Wolfgang Pieb c6f644f195 [Metadata][NFC] Make MDNode::resolve() public in preparation for the fix to PR33930.
Reviewers: aprantl



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317018 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 18:25:28 +00:00
Teresa Johnson 066071f53f [ThinLTO] Double bits of module hash used for renaming
Summary:
Use 64 instead of 32 bits of the module hash as the suffix when renaming
after promotion to reduce the likelihood of a collision (which we
observed in a binary when using 32 bits).

Reviewers: pcc

Subscribers: llvm-commits, inglorion

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316996 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 12:56:09 +00:00
David Green 7fa6b25542 [LoopUnroll] Clean up remarks for unroll remainder
The optimisation remarks for loop unrolling with an unrolled remainder looks something like:

test.c:7:18: remark: completely unrolled loop with 3 iterations [-Rpass=loop-unroll]
            C[i] += A[i*N+j];
                 ^
test.c:6:9: remark: unrolled loop by a factor of 4 with run-time trip count [-Rpass=loop-unroll]
        for(int j = 0; j < N; j++)
        ^
This removes the first of the two messages.

Differential revision: https://reviews.llvm.org/D38725



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316986 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 10:47:46 +00:00
Max Kazantsev 057fc35f6f Reapply "[GVN] Prevent LoadPRE from hoisting across instructions that don't pass control flow to successors"
This patch fixes the miscompile that happens when PRE hoists loads across guards and
other instructions that don't always pass control flow to their successors. PRE is now prohibited
to hoist across such instructions because there is no guarantee that the load standing after such
instruction is still valid before such instruction. For example, a load from under a guard may be
invalid before the guard in the following case:
  int array[LEN];
  ...
  guard(0 <= index && index < LEN);
  use(array[index]);

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316975 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 05:07:56 +00:00
Daniel Neilson 8e9d06e47c Create instruction classes for identifying any atomicity of memory intrinsic. (NFC)
Summary:
For reference, see: http://lists.llvm.org/pipermail/llvm-dev/2017-August/116589.html

This patch fleshes out the instruction class hierarchy with respect to atomic and
non-atomic memory intrinsics. With this change, the relevant part of the class
hierarchy becomes:

IntrinsicInst
  -> MemIntrinsicBase (methods-only class)
    -> MemIntrinsic (non-atomic intrinsics)
      -> MemSetInst
      -> MemTransferInst
        -> MemCpyInst
        -> MemMoveInst
    -> AtomicMemIntrinsic (atomic intrinsics)
      -> AtomicMemSetInst
      -> AtomicMemTransferInst
        -> AtomicMemCpyInst
        -> AtomicMemMoveInst
    -> AnyMemIntrinsic (both atomicities)
      -> AnyMemSetInst
      -> AnyMemTransferInst
        -> AnyMemCpyInst
        -> AnyMemMoveInst

This involves some class renaming:
    ElementUnorderedAtomicMemCpyInst -> AtomicMemCpyInst
    ElementUnorderedAtomicMemMoveInst -> AtomicMemMoveInst
    ElementUnorderedAtomicMemSetInst -> AtomicMemSetInst
A script for doing this renaming in downstream trees is included below.

An example of where the Any* classes should be used in LLVM is when reasoning
about the effects of an instruction (ex: aliasing).

---
Script for renaming AtomicMem* classes:
PREFIXES="[<,([:space:]]"
CLASSES="MemIntrinsic|MemTransferInst|MemSetInst|MemMoveInst|MemCpyInst"
SUFFIXES="[;)>,[:space:]]"

REGEX="(${PREFIXES})ElementUnorderedAtomic(${CLASSES})(${SUFFIXES})"
REGEX2="visitElementUnorderedAtomic(${CLASSES})"

FILES=$( grep -E "(${REGEX}|${REGEX2})" -r . | tr ':' ' ' | awk '{print $1}' | sort | uniq )

SED_SCRIPT="s~${REGEX}~\1Atomic\2\3~g"
SED_SCRIPT2="s~${REGEX2}~visitAtomic\1~g"

for f in $FILES; do
    echo "Processing: $f"
    sed  -i ".bak" -E "${SED_SCRIPT};${SED_SCRIPT2};${EA_SED_SCRIPT};${EA_SED_SCRIPT2}" $f
done

Reviewers: sanjoy, deadalnix, apilipenko, anna, skatkov, mkazantsev

Reviewed By: sanjoy

Subscribers: hfinkel, jholewinski, arsenm, sdardis, nhaehnle, JDevlieghere, javed.absar, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316950 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-30 19:51:48 +00:00
Clement Courbet 4ccf677f27 [CodeGen][ExpandMemcmp] Allow memcmp to expand to vector loads (2).
- Targets that want to support memcmp expansions now return the list of
   supported load sizes.
 - Expansion codegen does not assume that all power-of-two load sizes
   smaller than the max load size are valid. For examples, this is not the
   case for x86(32bit)+sse2.

Fixes PR34887.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316905 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-30 14:19:33 +00:00
Sanjay Patel 9c64b96f29 [(new) Pass Manager] instantiate SimplifyCFG with the same options as the old PM
The old PM sets the options of what used to be known as "latesimplifycfg" on the 
instantiation after the vectorizers have run, so that's what we'redoing here.

FWIW, there's a later SimplifyCFGPass instantiation in both PMs where we do not 
set the "late" options. I'm not sure if that's intentional or not.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316869 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-29 20:49:31 +00:00
Saleem Abdulrasool cf76a97d8f ADT: add a helper to check if the Triple is ARM64
Add a trivial helper for checking if the architecture is AArch64 Little
Endian or Big Endian.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316837 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-28 19:15:05 +00:00
Sanjay Patel 72428f5e04 [SimplifyCFG] use pass options and remove the latesimplifycfg pass
This is no-functional-change-intended.

This is repackaging the functionality of D30333 (defer switch-to-lookup-tables) and 
D35411 (defer folding unconditional branches) with pass parameters rather than a named
"latesimplifycfg" pass. Now that we have individual options to control the functionality,
we could decouple when these fire (but that's an independent patch if desired). 

The next planned step would be to add another option bit to disable the sinking transform
mentioned in D38566. This should also make it clear that the new pass manager needs to
be updated to limit simplifycfg in the same way as the old pass manager.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316835 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-28 18:43:07 +00:00
Eugene Zelenko b35e220e58 [ADT] 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@316818 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-28 00:24:26 +00:00
David Blaikie 8822399c8a Add a few missing headers for modularization/IWYU/etc
Several cases where class definitions are required for DenseMap pointer
traits handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316803 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-27 22:12:46 +00:00
whitequark a129dc8bcf [LLVM-C] Publicly expose getters of MetadataType, TokenType
Patch by Robert Widmann.

Expose getters for MetadataType and TokenType publicly in the C API.
Discovered a need for these while trying to wrap the intrinsics API.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316762 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-27 11:51:40 +00:00
NAKAMURA Takumi 049a66484d llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h: Fix -fmodules build introduced in rL316715.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316743 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-27 05:45:11 +00:00
Sean Fertile 53b3cd421e Add subclass data to the FoldingSetNode for MemIntrinsicSDNodes.
Not having the subclass data on an MemIntrinsicSDNodes means it was possible
to try to fold 2 nodes with the same operands but differing MMO flags. This
would trip an assertion when trying to refine the alignment between the 2
MachineMemOperands.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316737 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-27 04:02:51 +00:00
Eugene Zelenko 16267f1cbc [Transforms] 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@316724 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-27 01:09:08 +00:00
David Blaikie 7be6b37802 InstructionSelectorImpl.h: Modularize/remove ODR violations by using a static member function to expose the debug name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316715 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-26 23:39:54 +00:00
David Blaikie 921ae2bfbf MCCodePadder.h: Include definition of type for use with DenseMap
Pointer traits require a full definition of a type to function
correctly, so the header must be included rather than only a forward
declaration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316714 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-26 23:39:52 +00:00
Aditya Nandakumar 6b9f2f6345 [GISel]: Missed checking if it's okay to create a G_CONSTANT of DstTy in the legalizationCombiner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316694 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-26 20:13:54 +00:00
Sean Fertile 509132b368 Represent runtime preemption in the IR.
Currently we do not represent runtime preemption in the IR, which has several
drawbacks:

  1) The semantics of GlobalValues differ depending on the object file format
     you are targeting (as well as the relocation-model and -fPIE value).
  2) We have no way of disabling inlining of run time interposable functions,
     since in the IR we only know if a function is link-time interposable.
     Because of this llvm cannot support elf-interposition semantics.
  3) In LTO builds of executables we will have extra knowledge that a symbol
     resolved to a local definition and can't be preemptable, but have no way to
     propagate that knowledge through the compiler.

This patch adds preemptability specifiers to the IR with the following meaning:

dso_local --> means the compiler may assume the symbol will resolve to a
 definition within the current linkage unit and the symbol may be accessed
 directly even if the definition is not within this compilation unit.

dso_preemptable --> means that the compiler must assume the GlobalValue may be
replaced with a definition from outside the current linkage unit at runtime.

To ease transitioning dso_preemptable is treated as a 'default' in that
low-level codegen will still do the same checks it did previously to see if a
symbol should be accessed indirectly. Eventually when IR producers emit the
specifiers on all Globalvalues we can change dso_preemptable to mean 'always
access indirectly', and remove the current logic.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316668 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-26 15:00:26 +00:00
Eugene Zelenko 46057fe01a [Transforms] 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@316630 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-26 00:55:39 +00:00
Jonas Devlieghere c2c04200c8 Re-land "[dwarfdump] Add -lookup option"
Add the option to lookup an address in the debug information and print
out the file, function, block and line table details.

Differential revision: https://reviews.llvm.org/D38409

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316619 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 21:56:41 +00:00
Sanjoy Das bc1160282c Add a comment to clarify a future change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316614 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 21:40:59 +00:00
Aditya Nandakumar ca37830df0 Make the combiner check if shifts are legal before creating them
Summary: Make sure shifts are legal/specified by the legalizerinfo before creating it

Reviewers: qcolombet, dsanders, rovka, t.p.northover

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316602 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 18:49:18 +00:00
Peter Collingbourne 74a12b3740 Remove dead function declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316597 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 17:42:00 +00:00
Matthew Simpson 7d6a3b6798 Add CalledValuePropagation pass
This patch adds a new pass for attaching !callees metadata to indirect call
sites. The pass propagates values to call sites by performing an IPSCCP-like
analysis using the generic sparse propagation solver. For indirect call sites
having a small set of possible callees, the attached metadata indicates what
those callees are. The metadata can be used to facilitate optimizations like
intersecting the function attributes of the possible callees, refining the call
graph, performing indirect call promotion, etc.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316576 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 13:40:08 +00:00
Daniil Fukalov 65f1735a62 [inlineasm] Fix crash when number of matched input constraint operands overflows signed char
In a case when number of output constraint operands that has matched input operands
doesn't fit to signed char, TargetLowering::ParseConstraints() can try to access
ConstraintOperands (that is std::vector) with negative index.

Reviewers: rampitec, arsenm

Differential Review: https://reviews.llvm.org/D39125

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316574 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 12:51:32 +00:00
George Rimar db07f4c8a7 [llvm-dwarfdump] - Fix array out of bounds access crash.
This fixes possible out of bound access in
DWARFDie::getFirstChild()
which might happen when .debug_info section is corrupted,
like shown in testcase.

Differential revision: https://reviews.llvm.org/D39185


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316566 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 10:23:49 +00:00
Peter Collingbourne 68a3deb50e llvm-readobj: Add support for reading relocations in the Android packed format.
This is in preparation for testing lld's upcoming relocation packing
feature (D39152). I have verified that this implementation correctly
unpacks the relocations from a Chromium DSO built with gold and the
Android relocation packer for ARM32 and ARM64.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316543 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-25 03:37:12 +00:00
Adrian Prantl 4a39ef301e Implement salavageDebugInfo functionality for SelectionDAG.
Similar to how llvm::salvagDebugInfo hooks into InstCombine, this adds
a hook that can be invoked before an SDNode that is associated with an
SDDbgValue is erased to capture the effect of the deleted node in a
DIExpression.

The motivating example is an SDDebugValue attached to an ADD operation
that gets folded into a LOAD+OFFSET operation.

rdar://problem/32121503

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316525 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 22:55:12 +00:00
Sam Clegg 9ea950f009 Add Triple::isOSUnknown
Subscribers: aheejin

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316524 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 22:48:19 +00:00
David Blaikie 1617f0720e ValueMapper.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316516 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:21 +00:00
David Blaikie 36f40a6dcd Transforms/Utils/Local.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316515 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:20 +00:00
David Blaikie 4eaad94016 TargetOpcodes.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316514 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:19 +00:00
David Blaikie b5c3a33e44 Printable.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316513 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:19 +00:00
David Blaikie 88d6995bda ConvertUTF.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316512 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:18 +00:00
David Blaikie b6293695c3 AtomicOrdering.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316511 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:18 +00:00
David Blaikie 04614e095b LaneBitmask.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316510 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:17 +00:00
David Blaikie 8287ed2398 Type.h: Don't mark header functions as file local
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316509 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:16 +00:00
David Blaikie e3ed1e8dc7 RegisterUsageInfo.h: Add missing header for complete type needed for DenseMap traits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316504 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-24 21:29:10 +00:00