Sanjoy Das
1f7b813e2b
Remove duplicated code; NFC
...
ICmpInst::makeConstantRange does exactly the same thing as
ConstantRange::makeExactICmpRegion.
llvm-svn: 283059
2016-10-02 00:09:57 +00:00
Sanjoy Das
1b9cefcf03
[SCEV] Rely on ConstantRange instead of custom logic; NFCI
...
llvm-svn: 283058
2016-10-02 00:09:52 +00:00
Sanjoy Das
6ef69d97f5
[ConstantRange] Make getEquivalentICmp smarter
...
This change teaches getEquivalentICmp to be smarter about generating
ICMP_NE and ICMP_EQ predicates.
llvm-svn: 283057
2016-10-02 00:09:49 +00:00
Sanjoy Das
54e6a21dca
[SCEV] Remove commented out code; NFC
...
llvm-svn: 283056
2016-10-02 00:09:45 +00:00
Simon Pilgrim
630dd6ff02
[X86][SSE] Cleaned up shuffle decode assertion messages
...
llvm-svn: 283050
2016-10-01 20:12:56 +00:00
Mehdi Amini
99d1b29503
Use StringRef for MemoryBuffer identifier API (NFC)
...
llvm-svn: 283043
2016-10-01 16:38:28 +00:00
Simon Pilgrim
5b0c15ddf7
Fix signed/unsigned warning
...
llvm-svn: 283041
2016-10-01 16:14:57 +00:00
Simon Pilgrim
1638d49f20
[X86][SSE] Add support for combining target shuffles to binary BLEND
...
We already had support for 1-input BLEND with zero - this adds support for 2-input BLEND as well.
llvm-svn: 283040
2016-10-01 16:04:28 +00:00
Mehdi Amini
7410717a62
Use StringRef in Registry API (NFC)
...
llvm-svn: 283039
2016-10-01 15:44:54 +00:00
Simon Pilgrim
ae17cf20ce
[X86][SSE] Always combine target shuffles to MOVSD/MOVSS
...
Now we can commute to BLENDPD/BLENDPS on SSE41+ targets if necessary, so simplify the combine matching where we can.
This required me to add a couple of scalar math movsd/moss fold patterns that hadn't been needed in the past.
llvm-svn: 283038
2016-10-01 15:33:01 +00:00
Simon Pilgrim
ccdd1ff49b
[X86][SSE] Enable commutation from MOVSD/MOVSS to BLENDPD/BLENDPS on SSE41+ targets
...
Instead of selecting between MOVSD/MOVSS and BLENDPD/BLENDPS at shuffle lowering by subtarget this will help us select the instruction based on actual commutation requirements.
We could possibly add BLENDPD/BLENDPS -> MOVSD/MOVSS commutation and MOVSD/MOVSS memory folding using a similar approach if it proves useful
I avoided adding AVX512 handling as I'm not sure when we should be making use of VBLENDPD/VBLENDPS on EVEX targets
llvm-svn: 283037
2016-10-01 14:26:11 +00:00
Nirav Dave
e4c6153cf1
Revert "[MC] Prevent out of order HashDirective lexing in AsmLexer."
...
This reverts commit r282992 which appears to be causing an LTO test failure.
llvm-svn: 283034
2016-10-01 10:57:55 +00:00
Kostya Serebryany
a5f1adab56
[libFuzzer] add fuzzer test for libxml2, finds https://bugzilla.gnome.org/show_bug.cgi?id=751631
...
llvm-svn: 283024
2016-10-01 07:37:40 +00:00
Kostya Serebryany
d1f31d0a49
[libFuzzer] fix a recent bugs (buffer overflow)
...
llvm-svn: 283021
2016-10-01 07:13:25 +00:00
Craig Topper
5eb5ade894
[X86] Cleanup patterns for using VMOVDDUP for broadcasts.
...
-Remove OptForSize. Not all of the backend follows the same rules for creating broadcasts and there is no conflicting pattern.
-Don't stop selecting VEX VMOVDDUP when AVX512 is supported. We need VLX for EVEX VMOVDDUP.
-Only use VMOVDDUP for v2i64 broadcasts if AVX2 is not supported.
llvm-svn: 283020
2016-10-01 07:11:24 +00:00
Mehdi Amini
9af9a9d5f9
Revert "Use StringRef instead of raw pointer in TargetRegistry API (NFC)"
...
This reverts commit r283017. Creates an infinite loop somehow.
llvm-svn: 283019
2016-10-01 07:08:23 +00:00
Mehdi Amini
36d33fc109
Use StringRef instead of raw pointers in MCAsmInfo/MCInstrInfo APIs (NFC)
...
llvm-svn: 283018
2016-10-01 06:46:33 +00:00
Mehdi Amini
cd354a659b
Use StringRef instead of raw pointer in TargetRegistry API (NFC)
...
llvm-svn: 283017
2016-10-01 06:25:30 +00:00
Mehdi Amini
7419e940d2
Use StringRef instead of raw pointer in ExecutionEngine
...
llvm-svn: 283016
2016-10-01 06:22:04 +00:00
Craig Topper
be351eea0c
[AVX-512] Add EVEX versions of VPBROADCASTW patterns with truncated i32 loads.
...
llvm-svn: 283015
2016-10-01 06:01:23 +00:00
Mehdi Amini
48878ae579
Use StringRef in Datalayout API (NFC)
...
llvm-svn: 283013
2016-10-01 05:57:55 +00:00
Mehdi Amini
f42ec7903f
DIFlags: use StringRef instead of raw pointer (NFC)
...
llvm-svn: 283012
2016-10-01 05:57:50 +00:00
Mehdi Amini
217b246484
Revert "Use StringRef in Datalayout API (NFC)"
...
This reverts commit r283009. Bots are broken.
llvm-svn: 283011
2016-10-01 05:12:48 +00:00
Mehdi Amini
29baf9c0e1
Use StringRef in Datalayout API (NFC)
...
llvm-svn: 283009
2016-10-01 04:17:59 +00:00
Mehdi Amini
f20abe53f4
Use StringRef in Pass Info/Support API (NFC)
...
llvm-svn: 283008
2016-10-01 04:03:30 +00:00
Mehdi Amini
e11b745b66
Use StringRef in CommandLine Options handling (NFC)
...
llvm-svn: 283007
2016-10-01 03:43:20 +00:00
Mehdi Amini
9a72cd7b21
Use StringRef in TLI instead of raw pointer (NFC)
...
llvm-svn: 283005
2016-10-01 03:10:48 +00:00
Mehdi Amini
117296c0a0
Use StringRef in Pass/PassManager APIs (NFC)
...
llvm-svn: 283004
2016-10-01 02:56:57 +00:00
Mehdi Amini
86eeda8e20
Revert "AMDGPU: Don't use offen if it is 0"
...
This reverts commit r282999.
Tests are not passing: http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/20038
llvm-svn: 283003
2016-10-01 02:35:24 +00:00
Eric Christopher
e8d141c675
Remove getTargetTriple and update all uses to use the Triple off
...
of the TargetMachine. NFC.
llvm-svn: 283002
2016-10-01 01:50:33 +00:00
Eric Christopher
364dbe06d3
Stop calling getTargetTriple off of the AsmPrinter and constructing a
...
TargetTriple, just grab it off of the TargetMachine. NFC.
llvm-svn: 283001
2016-10-01 01:50:29 +00:00
Eric Christopher
98983d0aff
Remove TargetTriple from AArch64MCInstLower as it's used in few places
...
and can be pulled from the TargetMachine. NFC.
llvm-svn: 283000
2016-10-01 01:50:25 +00:00
Matt Arsenault
3070fdf798
AMDGPU: Don't use offen if it is 0
...
This removes many re-initializations of a base register to 0.
llvm-svn: 282999
2016-10-01 01:37:15 +00:00
Mehdi Amini
4cc259a469
Use StringRef in LTOCodegenerator (NFC)
...
llvm-svn: 282998
2016-10-01 01:18:23 +00:00
Mehdi Amini
05cfdd0800
Use StringRef in LTOModule implementation (NFC)
...
llvm-svn: 282997
2016-10-01 01:18:16 +00:00
Mehdi Amini
b7fb124512
Use StringRef in Triple API (NFC)
...
llvm-svn: 282996
2016-10-01 01:16:22 +00:00
Kostya Serebryany
d216922a80
[libFuzzer] implement the -shrink=1 option that tires to make elements of the corpus smaller, off by default
...
llvm-svn: 282995
2016-10-01 01:04:29 +00:00
Nirav Dave
9f2bd4e7ea
[MC] Prevent out of order HashDirective lexing in AsmLexer.
...
To lex hash directives we peek ahead to find component tokens, create a
unified token, and unlex the peeked tokens so the parser does not need
to parse the tokens then. Make sure we do not to lex another hash
directive during peek operation.
This fixes PR28921.
Reviewers: rnk, loladiro
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D24839
llvm-svn: 282992
2016-10-01 00:42:32 +00:00
Mehdi Amini
6610b01a27
[ASAN] Add the binder globals on Darwin to llvm.compiler.used to avoid LTO dead-stripping
...
The binder is in a specific section that "reverse" the edges in a
regular dead-stripping: the binder is live as long as a global it
references is live.
This is a big hammer that prevents LLVM from dead-stripping these,
while still allowing linker dead-stripping (with special knowledge
of the section).
Differential Revision: https://reviews.llvm.org/D24673
llvm-svn: 282988
2016-10-01 00:05:34 +00:00
Kostya Serebryany
90f8f36bca
[libFuzzer] remove some experimental code
...
llvm-svn: 282983
2016-09-30 23:29:27 +00:00
Matthias Braun
298e007e99
ScheduleDAGInstrs: Cleanup, use range based for; NFC
...
llvm-svn: 282979
2016-09-30 23:08:07 +00:00
Kostya Serebryany
7022b94687
[libFuzzer] fix openssl fuzzer tests when running on a machine w/o openssl installed
...
llvm-svn: 282972
2016-09-30 22:35:08 +00:00
Kostya Serebryany
e7e790bad6
[libFuzzer] remove unused option
...
llvm-svn: 282971
2016-09-30 22:29:57 +00:00
Reid Kleckner
9cb915b7be
[SEH] Emit the parent frame offset label even if there are no funclets
...
This avoids errors about references to undefined local labels from
unreferenced filter functions.
Fixes (sort of) PR30431
llvm-svn: 282967
2016-09-30 22:10:12 +00:00
Quentin Colombet
a6119958ff
[AArch64][RegisterBankInfo] Use the helper functions for the checks
...
This makes sure the helper functions work as expected.
NFC.
llvm-svn: 282961
2016-09-30 21:46:21 +00:00
Quentin Colombet
7c3fa8e361
[AArch64][RegisterBankInfo] Rename getValueMappingIdx to getValueMapping
...
We don't return index, we return the actual ValueMapping.
NFC.
llvm-svn: 282960
2016-09-30 21:46:19 +00:00
Quentin Colombet
b4afac7b32
[AArch64][RegisterBankInfo] Compress the ValueMapping table a bit.
...
We don't need to have singleton ValueMapping on their own, we can just
reuse one of the elements of the 3-ops mapping.
This allows even more code sharing.
NFC.
llvm-svn: 282959
2016-09-30 21:46:17 +00:00
Quentin Colombet
7fc5fe41c5
[AArch64][RegisterBankInfo] Refactor the code to access AArch64::ValMapping
...
Use a helper function to access ValMapping. This should make the code
easier to understand and maintain.
NFC.
llvm-svn: 282958
2016-09-30 21:46:15 +00:00
Quentin Colombet
15dc25bb3d
[AArch64][RegisterBankInfo] Rename getRegBankIdx to getRegBankIdxOffset
...
The function name did not make it clear that the returned value was an
offset to apply to a register bank index.
NFC.
llvm-svn: 282957
2016-09-30 21:46:12 +00:00
Quentin Colombet
b2308987ab
[AArch64][RegisterBankInfo] Use the static opds mapping for alt mappings
...
Avoid to rely on the dynamically allocated operands mapping for the
alternative mapping.
NFC.
llvm-svn: 282956
2016-09-30 21:45:56 +00:00