148665 Commits

Author SHA1 Message Date
Michael Zuckerman
e11b0c62e8 [LLVM][inline-asm][Altmacor] Altmacro string delimiter '<..>'
In this patch, I introduce a new altmacro string delimiter. 
This review is the second review in a series of four reviews.
(one for each altmacro feature: LOCAL, string delimiter, string '!' escape sign and absolute expression as a string '%' ).

In the alternate macro mode, you can delimit strings with matching angle brackets <..> 
when using it as a part of calling macro arguments.

As described in the https://sourceware.org/binutils/docs-2.27/as/Altmacro.html
"<string>
You can delimit strings with matching angle brackets."

assumptions:

1. If an argument begins with '<' and ends with '>'. The argument is considered as a string.
2. Except adding new string mark '<..>', a regular macro behavior is expected.
3. The altmacro cannot affect the regular less/greater behavior.
4. If a comma is present inside an angle brackets it considered as a character and not as a separator.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302135 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 10:37:00 +00:00
Igor Breger
0e40641a77 [X86][AVX-512] Allow EVEX encoded instruction selection when available for mul v8i32.
Differential Revision: https://reviews.llvm.org/D32679

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302127 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 07:34:58 +00:00
Sam Parker
47d5da39f5 [ARM] ACLE Chapter 9 intrinsics
Added the integer data processing intrinsics from ACLE v2.1 Chapter 9
but I have missed out the saturation_occurred intrinsics for now. For
the instructions that read and write the GE bits, a chain is included
and the only instruction that reads these flags (sel) is only
selectable via the implemented intrinsic.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302126 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 07:31:28 +00:00
Oren Ben Simhon
9d00f4f98a [X86] Disabling PLT in Regcall CC Functions
According to psABI, PLT stub clobbers XMM8-XMM15.
In Regcall calling convention those registers are used for passing parameters. 
Thus we need to prevent lazy binding in Regcall.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302124 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 07:22:49 +00:00
Igor Breger
672e96e594 [AVX-512VL] Autogenerate checks. Add --show-mc-encoding to check instruction predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302123 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 06:53:31 +00:00
Igor Breger
c33edb5884 [AVX] Fix vpcmpeqq predicate.
Summary:
Fix vpcmpeqq predicate. AVX512 version of vpcmpeqq is not equivalent to AVX one.
Split from https://reviews.llvm.org/D32679

Reviewers: craig.topper, zvi, aymanmus

Reviewed By: craig.topper

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302119 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 06:24:52 +00:00
Jonas Paulsson
245084ed3c Use right function in LoopVectorize.
-    unsigned AS = getMemInstAlignment(I);
+    unsigned AS = getMemInstAddressSpace(I);

Review: Hal Finkel

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302114 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 05:31:56 +00:00
Dean Michael Berris
dae122d59d [XRay] Use wordsize-dependent alignment for index
This makes it simpler for the runtime to consistently handle the entries
in the function sled index in both 32 and 64 bit platforms where the
XRay runtime works.

Follow-up on D32693.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302111 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 04:55:46 +00:00
Craig Topper
9e4ad9cbb5 [SelectionDAG] Improve known bits support for CTPOP.
This is based on the same concept from ValueTracking's version of computeKnownBits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302110 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 04:33:27 +00:00
Dean Michael Berris
acf912e5ba [XRay] Create an Index of sleds per function
Summary:
This change adds a new section to the xray-instrumented binary that
stores an index into ranges of the instrumentation map, where sleds
associated with the same function can be accessed as an array. At
runtime, we can get access to this index by function ID offset allowing
for selective patching and unpatching by function ID.

Each entry in this new section (xray_fn_idx) will include two pointers
indicating the start and one past the end of the sleds associated with
the same function. These entries will be 16 bytes long on x86 and
aarch64. On arm, we align to 16 bytes anyway so the runtime has to take
that into consideration.

__{start,stop}_xray_fn_idx will be the symbols that the runtime will
look for when we implement the selective patching/unpatching by function
id APIs. Because XRay synthesizes the function id's in a monotonically
increasing manner at runtime now, implementations (and users) can use
this table to look up the sleds associated with a specific function.
This is useful in implementations that want to do things like:

  - Implement coverage mode for functions by patching everything
    pre-main, then as functions are encountered, the installed handler
    can unpatch the function that's been encountered after recording
    that it's been called.
  - Do "learning mode", so that the implementation can figure out some
    statistical information about function calls by function id for a
    time being, and then determine which functions are worth
    uninstrumenting at runtime.
  - Do "selective instrumentation" where an implementation can
    specifically instrument only certain function id's at runtime
    (either based on some external data, or through some other
    heuristics) instead of patching all the instrumented functions at
    runtime.

Reviewers: dblaikie, echristo, chandlerc, javed.absar

Subscribers: pelikan, aemerson, kpw, llvm-commits, rengolin

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302109 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 03:37:57 +00:00
Peter Collingbourne
df2206086c IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI.
When profiling a no-op incremental link of Chromium I found that the functions
computeImportForFunction and computeDeadSymbols were consuming roughly 10% of
the profile. The goal of this change is to improve the performance of those
functions by changing the map lookups that they were previously doing into
pointer dereferences.

This is achieved by changing the ValueInfo data structure to be a pointer to
an element of the global value map owned by ModuleSummaryIndex, and changing
reference lists in the GlobalValueSummary to hold ValueInfos instead of GUIDs.
This means that a ValueInfo will take a client directly to the summary list
for a given GUID.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302108 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 03:36:16 +00:00
NAKAMURA Takumi
7395a71ceb llvm/IR/Function.h: Prune an obsolete @param in r302060. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302106 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 02:01:18 +00:00
Dean Michael Berris
875f0a3e72 [XRay] Detect loops in functions being lowered
Summary:
This is an implementation of the loop detection logic that XRay needs to
determine whether a function might take time at runtime. Without this
heuristic, XRay will tend to not instrument short functions that have
loops that might have runtime dependent on inputs or external values.

While this implementation doesn't do any further analysis than just
figuring out whether there is a loop in the MachineFunction being
code-gen'ed, we're paving the way for being able to perform more
sophisticated analysis of the function in the future (for example to
determine whether the trip count for the loop might be constant, and
make a decision on that instead). This enables us to cover more
functions with the default heuristics, and potentially identify ones
that have variable runtime latency just by looking for the presence of
loops.

Reviewers: chandlerc, rnk, pelikan

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302103 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-04 01:24:26 +00:00
Michael Zolotukhin
805e09d964 [SCEV] createAddRecFromPHI: Optimize for the most common case.
Summary:
The existing implementation creates a symbolic SCEV expression every
time we analyze a phi node and then has to remove it, when the analysis
is finished. This is very expensive, and in most of the cases it's also
unnecessary. According to the data I collected, ~60-70% of analyzed phi
nodes (measured on SPEC) have the following form:
  PN = phi(Start, OP(Self, Constant))
Handling such cases separately significantly speeds this up.

Reviewers: sanjoy, pete

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302096 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 23:53:38 +00:00
Matthias Braun
bcd731ca9c strlen-1.ll: Fix test
Change test for `strlen(x) == 0 --> *x == 0` to actually test the
pattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302094 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 23:32:51 +00:00
Craig Topper
e6aa7aa29e [InstCombine][KnownBits] Use KnownBits better to detect nsw adds
Change checkRippleForAdd from a heuristic to a full check -
if it is provable that the add does not overflow return true, otherwise false.

Patch by Yoav Ben-Shalom

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302093 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 23:22:46 +00:00
Reid Kleckner
6e53fe29f3 Mark functions as not having CFI once we finalize an x86 stack frame
We'll set it back to true in emitPrologue if it gets called. It doesn't
get called for naked functions.

Fixes PR32912

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302092 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 23:13:42 +00:00
Craig Topper
64c8cdfd4f [KnownBits] Add methods for determining if KnownBits is a constant value
This patch adds isConstant and getConstant for determining if KnownBits represents a constant value and to retrieve the value. Use them to simplify code.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302091 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 23:12:29 +00:00
Craig Topper
f990516387 [ValueTracking] Remove handling for BitWidth being 0 in ComputeSignBit and isKnownNonZero.
I don't believe its possible to have non-zero values here since DataLayout became required. The APInt constructor inside of the KnownBits object will assert if this ever happens.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302089 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 22:25:19 +00:00
Craig Topper
f78221855b [KnownBits] Add zext, sext, and trunc methods to KnownBits
This patch adds zext, sext, and trunc methods to KnownBits and uses them where possible.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302088 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 22:07:25 +00:00
Sanjay Patel
acf74d2493 [TargetLowering] use isSubsetOf in SimplifyDemandedBits; NFCI
This is the DAG equivalent of https://reviews.llvm.org/D32255 , 
which will hopefully be committed again. The functionality
(preferring a 'not' op) is already here in the DAG, so this is
just intended to be a clean-up and performance improvement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302087 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 21:55:34 +00:00
Paul Robinson
2dbf23f50c clang-format and restyle DWARFFormValue before working on it. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302086 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 21:53:21 +00:00
Saleem Abdulrasool
9de7130986 DebugInfo: elide type index entries for synthetic types
Compiler emitted synthetic types may not have an associated DIFile
(translation unit).  In such a case, when generating CodeView debug type
information, we would attempt to compute an absolute filepath which
would result in a segfault due to a NULL DIFile*.  If there is no source
file associated with the type, elide the type index entry for the type
and record the type information.  This actually results in higher
fidelity debug information than clang/C2 as of this writing.

Resolves PR32668!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302085 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 21:39:01 +00:00
Ahmed Bougacha
d7e3981fae [AArch64] Fix variable name ambiguity in r302078.
ArchKind is passed to the function, but it's also a type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302081 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:51:34 +00:00
Xin Tong
2b3efc4c39 [TailCallElim] Remove an unused argument. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302080 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:37:07 +00:00
Ahmed Bougacha
f007e3acca [AArch64] Make the TargetParser add CPU exts provided by the arch.
Otherwise, each CPU has to manually specify the extensions it supports,
even though they have to be a superset of the base arch extensions.
And when there's redundant data there's stale data, so most of the CPUs
lie about the features they support (almost none lists AEK_FP).

Instead, do the saner thing: add the optional extensions on top of the
base extensions provided by the architecture.

The ARM TargetParser has the same behavior.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302078 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:33:58 +00:00
Ahmed Bougacha
700df98ddd [AArch64] armv8-A doesn't have CRC.
That's only a required extension as of v8.1a.

Remove it from the "generic" CPU as well: it should only support the
base ISA (and binutils agrees).

Also unify the MC tests into crc.s and arm64-crc32.s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302077 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:33:52 +00:00
Vitaly Buka
0a73805541 [libFuzzer] exit without running atexit handlers in libfuzzer's crash handler
Summary:
It's not safe to assume that atexit handlers can be run once the app crashed.

Patch by Jochen Eisinger.

Reviewers: kcc, vitalybuka

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302076 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:31:19 +00:00
Krzysztof Parzyszek
c272a4dc8d [Hexagon] Use automatically-generated scheduling information for HVX
Patch by Jyotsna Verma.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302073 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 20:10:36 +00:00
Zachary Turner
2a1f47ab11 Remove unused private field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302069 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 19:42:06 +00:00
Anna Thomas
f931b1e7f3 Avoid warning of unused variable in release builds. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302068 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 19:25:04 +00:00
Sanjoy Das
822fa3007b Fix typos in comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302063 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 18:29:34 +00:00
Greg Clayton
40ec86bcc2 Break verification down into smaller functions to keep code clean.
Adrian requested that we break things down to make things clean in the DWARFVerifier. This patch breaks everything down into nice individual functions and cleans up the code quite a bit and prepares us for the next round of verifiers.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302062 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 18:25:46 +00:00
Anna Thomas
48d0c2805c Fix PPC64 warning for missing parantheses. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302061 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 18:25:43 +00:00
Reid Kleckner
a82b376f69 [IR] Abstract away ArgNo+1 attribute indexing as much as possible
Summary:
Do three things to help with that:
- Add AttributeList::FirstArgIndex, which is an enumerator currently set
  to 1. It allows us to change the indexing scheme with fewer changes.
- Add addParamAttr/removeParamAttr. This just shortens addAttribute call
  sites that would otherwise need to spell out FirstArgIndex.
- Remove some attribute-specific getters and setters from Function that
  take attribute list indices.  Most of these were only used from
  BuildLibCalls, and doesNotAlias was only used to test or set if the
  return value is malloc-like.

I'm happy to split the patch, but I think they are probably easier to
review when taken together.

This patch should be NFC, but it sets the stage to change the indexing
scheme to this, which is more convenient when indexing into an array:
  0: func attrs
  1: retattrs
  2...: arg attrs

Reviewers: chandlerc, pete, javed.absar

Subscribers: david2050, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302060 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 18:17:31 +00:00
Davide Italiano
b95636bcab [CodeView] Remove constructor initialization of a removed field.
I should've staged this with my last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302059 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 18:02:46 +00:00
Anna Thomas
b93df0801a [RuntimeLoopUnroller] Add assert that we dont unroll non-rotated loops
Summary:
Cloning basic blocks in the loop for runtime loop unroller depends on loop being
in rotated form (i.e. loop latch target is the exit block).
Assert that this is true, so that callers of runtime loop unroller pass in
canonical loops.
The single caller of this function has that check recently added:
https://reviews.llvm.org/rL301239

Reviewers: davide

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302058 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:43:59 +00:00
Zachary Turner
43f488639f Delete dead function causing compilation failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302057 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:38:49 +00:00
Davide Italiano
c59f00f5e0 [CodeView] Remove unused private field. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302056 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:37:35 +00:00
Alexei Starovoitov
bd87726db4 [bpf] add relocation support
. there should be no runtime relocation inside the bpf function.
  . relocation supported here mostly for debugging.
  . a test case is added.

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302055 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:30:56 +00:00
Tom Stellard
450661e57c Revert "CMake: Move sphinx detection into AddSphinxTarget.cmake"
This reverts commit r302025.

clang and lld need to be updated too so they don't break with this patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302054 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:22:23 +00:00
Zachary Turner
ff94599664 [CodeView] Use actual strings for dealing with checksums and lines.
The raw CodeView format references strings by "offsets", but it's
confusing what table the offset refers to.  In the case of line
number information, it's an offset into a buffer of records,
and an indirection is required to get another offset into a
different table to find the final string.  And in the case of
checksum information, there is no indirection, and the offset
refers directly to the location of the string in another buffer.

This would be less confusing if we always just referred to the
strings by their value, and have the library be smart enough
to correctly resolve the offsets on its own from the right
location.

This patch makes that possible.  When either reading or writing,
all the user deals with are strings, and the library does the
appropriate translations behind the scenes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302053 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:11:40 +00:00
Zachary Turner
f393f97e65 [llvm-readobj] Update readobj to re-use parsing code.
llvm-readobj hand rolls some CodeView parsing code for string
tables, so this patch updates it to re-use some of the newly
introduced parsing code in LLVMDebugInfoCodeView.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302052 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 17:11:11 +00:00
Tim Northover
2c038deab6 ARM: add extra test for addrmode folding.
I was worried we might replace a mul with a mul+shift even if there were later
uses. Turns out to be unfounded but I'd just as well add an actual test for it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302051 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 16:54:30 +00:00
Simon Pilgrim
2cd10f6a97 [X86][LWP] Add stack folding mappings and tests for LWPINS/LWPVAL instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302049 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 16:46:30 +00:00
Simon Pilgrim
d27e7d384a Silence a 'enum and non-enum used in conditional' warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302048 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 16:43:57 +00:00
Amaury Sechet
d161fb6774 [DAGCombine] (addcarry (add|uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry)
Summary: Do the transform when the carry isn't used. It's a pattern exposed when legalizing large integers.

Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302047 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 16:28:10 +00:00
Greg Clayton
c8e3032271 Create DWARFVerifier.cpp and .h and move all DWARF verification code over into it.
Adrian requested we create a DWARFVerifier.cpp file to contain all of the DWARF verification stuff. This change simply moves the functionality over into DWARFVerifier.h and DWARFVerifier.cpp, renames the DWARFVerifier methods to start with lower case, and switches DWARFContext.cpp over to using the new functionality.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302044 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 16:02:29 +00:00
Zachary Turner
6b4b26a1a7 Resubmit r301986 and r301987 "Add codeview::StringTable"
This was reverted due to a "missing" file, but in reality
what happened was that I renamed a file, and then due to
a merge conflict both the old file and the new file got
added to the repository.  This led to an unused cpp file
being in the repo and not referenced by any CMakeLists.txt
but #including a .h file that wasn't in the repo.  In an
even more unfortunate coincidence, CMake didn't report the
unused cpp file because it was in a subdirectory of the
folder with the CMakeLists.txt, and not in the same directory
as any CMakeLists.txt.

The presence of the unused file was then breaking certain
tools that determine file lists by globbing rather than
by what's specified in CMakeLists.txt

In any case, the fix is to just remove the unused file from
the patch set.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302042 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 15:58:37 +00:00
Simon Pilgrim
9226f72364 [X86][LWP] Add llvm support for LWP instructions (reapplied).
This patch adds support for the the LightWeight Profiling (LWP) instructions which are available on all AMD Bulldozer class CPUs (bdver1 to bdver4).

Reapplied - this time without changing line endings of existing files.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302041 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-03 15:51:39 +00:00