1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Commit Graph

95419 Commits

Author SHA1 Message Date
Bill Wendling
217a0780cb Add comments to the CFI instructions and reformat with clang-format. No functionality change.
llvm-svn: 189864
2013-09-03 22:16:52 +00:00
Eric Christopher
b70795bbfd Fix copy and pasto with CMake files for unittest.
llvm-svn: 189863
2013-09-03 22:08:28 +00:00
Eric Christopher
9bd85fb4ef Add a hashing routine that handles hashing types. Add a test for
hashing the contents of DW_FORM_data1 on top of a type with attributes.

llvm-svn: 189862
2013-09-03 21:57:57 +00:00
Eric Christopher
8db812e020 Sentences end with periods.
llvm-svn: 189861
2013-09-03 21:57:50 +00:00
Nadav Rotem
ff7b438ada Enable late-vectorization by default.
This patch changes the default setting for the LateVectorization flag that controls where the loop-vectorizer is ran.

Perf gains:
SingleSource/Benchmarks/Shootout/matrix -37.33%
MultiSource/Benchmarks/PAQ8p/paq8p  -22.83%
SingleSource/Benchmarks/Linpack/linpack-pc  -16.22%
SingleSource/Benchmarks/Shootout-C++/ary3 -15.16%
MultiSource/Benchmarks/TSVC/NodeSplitting-flt/NodeSplitting-flt -10.34%
MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl -7.12%

Regressions:
SingleSource/Benchmarks/Misc/lowercase  15.10%
MultiSource/Benchmarks/TSVC/Equivalencing-flt/Equivalencing-flt 13.18%
SingleSource/Benchmarks/Shootout-C++/matrix 8.27%
SingleSource/Benchmarks/CoyoteBench/lpbench 7.30%

llvm-svn: 189858
2013-09-03 21:33:17 +00:00
Matt Arsenault
88b7b3058d Fix grammar
llvm-svn: 189855
2013-09-03 21:05:51 +00:00
Matt Arsenault
469d672381 Teach InstCombineLoadCast about address spaces.
This is another one that doesn't matter much,
but uses the right GEP index types in the first
place.

llvm-svn: 189854
2013-09-03 21:05:48 +00:00
Matt Arsenault
306cb38abf Use type form of getIntPtrType in alloca visitor.
This doesn't actually matter, since alloca is always
0 address space, but this is more consistent.

llvm-svn: 189853
2013-09-03 21:05:15 +00:00
Bill Wendling
6240614b03 WIP: Refactor some code so that it can be called by more than just one method. No functionality change.
llvm-svn: 189849
2013-09-03 20:59:07 +00:00
Eric Christopher
8d0a520dc2 Alphabetize.
llvm-svn: 189848
2013-09-03 20:51:14 +00:00
Joerg Sonnenberger
d6a76ffd81 Add a Python-like join function to merge a list of strings with a
separator between each two elements.

llvm-svn: 189846
2013-09-03 20:43:54 +00:00
Jim Grosbach
4f219b5c7e Revert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""
This reverts commit r189648.

Fixes for the previously failing clang-side arm_neon_intrinsics test
cases will be checked in separately.

llvm-svn: 189841
2013-09-03 20:08:17 +00:00
Eric Christopher
423b50bc11 Add the rest of the stock attributes to the attribute table.
This won't affect the kinds of hashes we test for as we actually
do hashing based on form and attribute. Change the fission-hash
testcase one last time to handle DW_AT_comp_dir.

llvm-svn: 189840
2013-09-03 20:00:20 +00:00
Vincent Lejeune
b888e36466 TableGen: Enumerate Schedule Model too.
llvm-svn: 189839
2013-09-03 19:43:28 +00:00
Yi Jiang
e1b34bf1fe In this patch we are trying to do two things:
1) If the width of vectorization list candidate is bigger than vector reg width, we will break it down to fit the vector reg.
2) We do not vectorize the width which is not power of two.

The performance result shows it will help some spec benchmarks. mesa improved 6.97% and ammp improved 1.54%. 

llvm-svn: 189830
2013-09-03 17:26:04 +00:00
Joerg Sonnenberger
930841271b Print string value for DT_RPATH and DT_RUNPATH.
llvm-svn: 189829
2013-09-03 17:13:53 +00:00
Joey Gouly
b8f02e9d31 [MC] Revert part of my previous change, I was a bit overzealous.
A change to test the previous commit will be coming soon.

llvm-svn: 189825
2013-09-03 16:18:19 +00:00
Eric Christopher
49b6a03c98 Migrate the DWARF_VERSION constant to 4. It largely needs to go away.
llvm-svn: 189824
2013-09-03 16:11:13 +00:00
Richard Sandiford
2543e2b36c [SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
For now this just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.

llvm-svn: 189819
2013-09-03 15:38:35 +00:00
Joey Gouly
289d25ae7c [MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in MCSubtargetInfo.
llvm-svn: 189815
2013-09-03 15:03:36 +00:00
Evgeniy Stepanov
475b9bd212 [msan] Fix handling of select with struct arguments.
llvm-svn: 189796
2013-09-03 13:05:29 +00:00
Evgeniy Stepanov
af50498a8a [msan] Fix select instrumentation.
Select condition shadow was being ignored resulting in false negatives.
This change OR-s sign-extended condition shadow into the result shadow.

llvm-svn: 189785
2013-09-03 10:04:11 +00:00
Daniel Sanders
3fe5e48ec9 [mips][msa] Added IntrNoMem and removed Commutative from sub intrinsics.
This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_sub_w -> ISD::SUB) in future patches since nodes
such as ISD::SUB do not have a chain.
It also corrects an obvious mistake, namely that the subtract intrinsics were
marked as being commutative.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

llvm-svn: 189784
2013-09-03 09:45:20 +00:00
Daniel Sanders
96e29ee174 [mips][msa] Added IntrNoMem to the floating-point intrinsics.
This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_fadd_w -> ISD::FADD) in future patches since nodes
such as ISD::FADD do not have a chain.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

llvm-svn: 189782
2013-09-03 09:35:20 +00:00
Venkatraman Govindaraju
ab95772300 [Sparc] Add support for soft long double (fp128).
llvm-svn: 189780
2013-09-03 04:11:59 +00:00
Craig Topper
43a4a079f4 Add hadSideEffects=0 to some instructions.
llvm-svn: 189779
2013-09-03 03:56:17 +00:00
Venkatraman Govindaraju
eaf96576da [Sparc] Implement spill and load for long double(f128) registers.
llvm-svn: 189768
2013-09-02 18:32:45 +00:00
Tilmann Scheller
e8598ae406 ARM: Default to the Swift CPU when targeting armv7s/thumbv7s.
Test cases adjusted accordingly.

This fixes rdar://14871821.

llvm-svn: 189766
2013-09-02 17:09:01 +00:00
Tilmann Scheller
9205705478 Revert 189756 for now, it doesn't match what rdar://14871821 really wants.
What we really want is to enable Swift by default for *v7s triples (and there already seems to be some logic which attempts to do that). In that case the iOS version doesn't matter. 

llvm-svn: 189763
2013-09-02 15:48:17 +00:00
Tilmann Scheller
9e0d3ff678 ARM: Default to Swift when compiling for iOS 6 or later.
Test cases adjusted accordingly.

This fixes rdar://14871821.

llvm-svn: 189756
2013-09-02 12:01:58 +00:00
NAKAMURA Takumi
26f34484dd FileCheck-ize three tests of llvm/test/CodeGen/X86/h-register(s).
llvm-svn: 189755
2013-09-02 12:00:53 +00:00
NAKAMURA Takumi
6f2ef5f35a llvm/test/CodeGen/X86: Update tests with -mattr=-bmi not to take BMI, corresponding to Craig's r189742.
AMD Piledriver builder detected failures.

llvm-svn: 189754
2013-09-02 12:00:46 +00:00
Alexey Samsonov
2c12d4855f [CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER
llvm-svn: 189747
2013-09-02 09:15:01 +00:00
Craig Topper
6009a9c268 Create BEXTR instructions for (and ((sra or srl) x, imm), (2**size - 1)). Fixes PR17028.
llvm-svn: 189742
2013-09-02 07:53:17 +00:00
Elena Demikhovsky
a6a8d7c33c AVX-512: updated the list of high-latency instructions.
llvm-svn: 189740
2013-09-02 07:41:01 +00:00
Chandler Carruth
ecd7c5b5f1 Add a clang-format file so that the tool can automatically detect the
correct style for the LLVM tree as well as projects checked out under
projects and tools.

llvm-svn: 189737
2013-09-02 07:19:04 +00:00
Elena Demikhovsky
49a9b5e2c9 AVX-512: gather-scatter tests; added foldable instructions;
Specify GATHER/SCATTER as heavy instructions.

llvm-svn: 189736
2013-09-02 07:12:29 +00:00
Elena Demikhovsky
6359a6ee2d llvm interpreter: select, shuffle and insertelement instructions.
This patch implements vector support for  select instruction and adds specific vector instructions : shuffle and insertelement. (tests are also included)
and functions lle_X_memset, lle_X_memcpy added.

Done by Veselov, Yuri (mailto:Yuri.Veselov@intel.com)

llvm-svn: 189735
2013-09-02 06:40:09 +00:00
Chandler Carruth
589d1b7b01 Fix some rather confusing indentation and control flow in the errno
printing routine. This is made harder to see due to the surprising
formatting, inconsistent brace usage, and repeated conditions that all
test the same thing.

The only "consequence" of this bug is re-assigning 'str' to an empty
string when computing the error string for an error number of 0 in the
event of a non-GNU strerror_r routine. So, nothing to see here other
than cleanup. It did help me find PR17055 in clang-format though.

llvm-svn: 189734
2013-09-02 05:55:10 +00:00
Dmitri Gribenko
3c784ef695 Added std:: qualifier to find() invocation
Iterator of std::vector may be implemented as a raw pointer. In
this case ADL does not find the find() function in the std namespace.
For example, this is the case with STDCXX implementation of vector.

Patch by Konstantin Tokarev.

llvm-svn: 189733
2013-09-02 01:18:56 +00:00
Chandler Carruth
282328faed Nuke the hilariously out of date suggestion to unpack llvm-gcc 4.2 as
part of getting started with LLVM.

The LLVM getting started document is in woeful need of attention. I may
get to some of this, but some random notes for folks interested:

1) We need to separate the getting started steps for folks who are
   interested in the core LLVM libs and nothing else, folks interested
   in a nifty C++ toolchain and nothing else, and folks interested in
   both.
2) We should include documentation for both release archives, svn, and
   git in equal portion, and we should document all of the various
   repositories of interest: llvm, clang, clang-tools-extra,
   compiler-rt, lld, libcxx, test-suite.
3) We should document the CMake build. We should probably document the
   CMake build first, and give a fall-back set of docs for the Makefile
   build for the use cases where that is still the preferred solution.
   This would more closely match the use cases that folks in the open
   source community are likely to have, and would remove a point of
   discrepancy between Linux, Windows, and Mac instructions.
4) Probably a ton of other modernization stuff that I've not thought of
   here.

Anyways, if anyone at all is interested, please help clean up this
document. It is much needed.

llvm-svn: 189732
2013-09-01 23:42:27 +00:00
Chris Lattner
4fe35f8960 Revert r189704, which removed the guidance about not duplicating doc comments.
This is under active discussion.

llvm-svn: 189730
2013-09-01 15:48:08 +00:00
Elena Demikhovsky
04a636836e AVX-512: Added GATHER and SCATTER instructions.
llvm-svn: 189729
2013-09-01 14:24:41 +00:00
Charles Davis
5191e0b0d0 Move everything depending on Object/MachOFormat.h over to Support/MachO.h.
llvm-svn: 189728
2013-09-01 04:28:48 +00:00
Reed Kotler
6c6fac6244 Make sure we don't generate stubs for any of these functions because they
don't exist in libc. This is really not the right way to solve this problem;
but it's not clear to me at this time exactly what is the right way.
If we create stubs here, they will cause link errors because these functions
do not exist in libc.

llvm-svn: 189727
2013-09-01 04:12:59 +00:00
Benjamin Kramer
29f4a90415 Mark an unreachable code path with llvm_unreachable. Pacifies GCC.
llvm-svn: 189726
2013-08-31 21:20:04 +00:00
Benjamin Kramer
4921fdebc8 Free PressureDiffs instead of leaking.
Found by valgrind.

llvm-svn: 189725
2013-08-31 20:10:01 +00:00
Benjamin Kramer
4bd23de2ce SimplifyLibCalls: When emitting an overloaded fp function check that it's available.
The existing code missed some edge cases when e.g. we're going to emit sqrtf but
only the availability of sqrt was checked. This happens on odd platforms like
windows.

llvm-svn: 189724
2013-08-31 18:19:35 +00:00
Andrew Trick
383ee03596 Fix my previous checkin to updatePressureDiffs.
There was one case that we could hit a DebugValue where I didn't think
to check. DebugValues are evil. No checkinable test case, sorry. It's
an obvious fix.

llvm-svn: 189717
2013-08-31 05:17:58 +00:00
Bill Schmidt
fbcebc7d75 [PowerPC] Fast-isel cleanup patch.
Here are a few miscellaneous things to tidy up the PPC64 fast-isel
implementation.  I corrected a couple of commentary lapses, and added
documentation of future opportunities.  I also implemented
TargetMaterializeAlloca, which I somehow forgot when I split up the
original huge patch.

Finally, I decided to delete SelectCmp.  I hadn't previously hooked it
in to TargetSelectInstruction(), and when I did I realized it wasn't
serving any useful purpose.  This is only useful for compares that
don't feed a branch in the same block, and to handle that we would
have to have logic to interpret i1 as a condition register.  This
could probably be done, but would require Unseemly Hackery, and
honestly does not seem worth the hassle.

This ends the current patch series.

llvm-svn: 189715
2013-08-31 02:33:40 +00:00