Sirish Pande
995c8dbfd2
Hexagon Packetizer's target independent fix.
...
llvm-svn: 155364
2012-04-23 17:49:09 +00:00
Sirish Pande
7039d0eaee
Hexagon V5 (floating point) support in cfe.
...
llvm-svn: 155363
2012-04-23 17:48:57 +00:00
Jakob Stoklund Olesen
43bcb970e5
Reapply r155136 after fixing PR12599.
...
Original commit message:
Defer some shl transforms to DAGCombine.
The shl instruction is used to represent multiplication by a constant
power of two as well as bitwise left shifts. Some InstCombine
transformations would turn an shl instruction into a bit mask operation,
making it difficult for later analysis passes to recognize the
constsnt multiplication.
Disable those shl transformations, deferring them to DAGCombine time.
An 'shl X, C' instruction is now treated mostly the same was as 'mul X, C'.
These transformations are deferred:
(X >>? C) << C --> X & (-1 << C) (When X >> C has multiple uses)
(X >>? C1) << C2 --> X << (C2-C1) & (-1 << C2) (When C2 > C1)
(X >>? C1) << C2 --> X >>? (C1-C2) & (-1 << C2) (When C1 > C2)
The corresponding exact transformations are preserved, just like
div-exact + mul:
(X >>?,exact C) << C --> X
(X >>?,exact C1) << C2 --> X << (C2-C1)
(X >>?,exact C1) << C2 --> X >>?,exact (C1-C2)
The disabled transformations could also prevent the instruction selector
from recognizing rotate patterns in hash functions and cryptographic
primitives. I have a test case for that, but it is too fragile.
llvm-svn: 155362
2012-04-23 17:39:52 +00:00
Sean Callanan
1ef77434e3
Implemented zext as a no-op cast in the IR
...
interpreter.
llvm-svn: 155360
2012-04-23 17:25:38 +00:00
DeLesley Hutchins
70b5e8eefc
Thread-safety analysis: support new "pointer to member" syntax for
...
existentially quantified lock expressions.
llvm-svn: 155357
2012-04-23 16:45:01 +00:00
Douglas Gregor
39f39ff4b7
Teach RequireCompleteType about multi-dimensional arrays. Fixes
...
<rdar://problem/11284902>.
llvm-svn: 155356
2012-04-23 16:42:52 +00:00
Manuel Klimek
969186fa4b
Fix PR12608. Patch contributed by Yang Chen.
...
llvm-svn: 155355
2012-04-23 16:40:40 +00:00
Sylvestre Ledru
3099f4bda8
Conflict with st_dev/st_ino identifiers under Debian GNU/Hurd
...
The problem is that the struct file_status on UNIX systems has two
members called st_dev and st_ino; those are also members of the
struct stat, and they are reserved identifiers which can also be
provided as #define (and this is the case for st_dev on Hurd).
The solution (attached) is to rename them, for example adding a
"fs_" prefix (= file status) to them.
Patch by Pino Toscano
llvm-svn: 155354
2012-04-23 16:37:23 +00:00
Bob Wilson
16c4a4f471
Add a test for svn r155263.
...
llvm-svn: 155353
2012-04-23 16:22:22 +00:00
Rafael Espindola
d88f37b8be
Inline helper function into only caller.
...
llvm-svn: 155352
2012-04-23 14:27:47 +00:00
Rafael Espindola
23fd21d4ee
Add another testcase that was not being covered.
...
llvm-svn: 155351
2012-04-23 14:02:53 +00:00
Alexey Samsonov
fbadfddcf1
[ASan] use CLANG_VERSION in Makefile (currently 3.2)
...
llvm-svn: 155350
2012-04-23 13:27:47 +00:00
Hongbin Zheng
4ac4e15582
Refactor: Pass the argument 'IRBuilder' and 'AfterBlock' of function 'createLoop' by
...
reference, so that we do not need to type an extra '&' operator when calling the function.
llvm-svn: 155349
2012-04-23 13:03:56 +00:00
Hongbin Zheng
6f7aa074ad
1. Add a header guard for LoopGenerators.h to prevent multiple inclusion.
...
2. Include the helper function and the helper class in the LoopGenerator.h into the polly namespace.
llvm-svn: 155348
2012-04-23 13:03:43 +00:00
Alexander Potapenko
056e27ea49
Fix issue 67 by checking that the interface functions weren't redefined in the compiled source file.
...
llvm-svn: 155346
2012-04-23 10:47:31 +00:00
Kostya Serebryany
b90fe5c6ee
[asan] fix typo
...
llvm-svn: 155345
2012-04-23 10:15:18 +00:00
Kostya Serebryany
c5bf3ad922
[asan] fix asan issue #66 (correctly report type of the bug)
...
llvm-svn: 155344
2012-04-23 10:08:16 +00:00
Kostya Serebryany
f43ce26688
[asan] update docs
...
llvm-svn: 155343
2012-04-23 09:05:50 +00:00
Anton Korobeynikov
df32b6f2de
Do not use stdint.h, driver might provide invalid location for it. Instead, provide the types directly.
...
This should fix PR12628
llvm-svn: 155342
2012-04-23 09:02:13 +00:00
Kostya Serebryany
5a4b7a232c
[tsan] use llvm/ADT/Statistic.h for tsan stats
...
llvm-svn: 155341
2012-04-23 08:44:59 +00:00
Manuel Klimek
9aa539513c
Fixes comment referencing old name.
...
llvm-svn: 155340
2012-04-23 08:43:08 +00:00
Craig Topper
153bb34a3c
Use MVT instead of EVT through all of LowerVECTOR_SHUFFLEtoBlend and not just the switch. Saves a little bit of binary size.
...
llvm-svn: 155339
2012-04-23 07:36:33 +00:00
Alexander Potapenko
0825d35b57
Bump the LLVM minor version. This should fix our 32-bit Linux build.
...
llvm-svn: 155338
2012-04-23 07:36:24 +00:00
Craig Topper
0a2c809d09
Make getZeroVector and getOnesVector more alike as far as how they detect 128-bit versus 256-bit vectors. Be explicit about both sizes and use llvm_unreachable. Similar changes to getLegalSplat.
...
llvm-svn: 155337
2012-04-23 07:24:41 +00:00
Craig Topper
2bbe8bcf4e
Tidy up by removing some 'else' after 'return'
...
llvm-svn: 155336
2012-04-23 06:57:04 +00:00
Craig Topper
5c51eeecfc
Tidy up spacing in LowerVECTOR_SHUFFLEtoBlend. Remove code that checks if shuffle operand has a different type than the the shuffle result since it can never happen.
...
llvm-svn: 155333
2012-04-23 06:38:28 +00:00
Craig Topper
a52f0d09b6
Add a couple llvm_unreachables.
...
llvm-svn: 155332
2012-04-23 03:42:40 +00:00
Craig Topper
984dc015ae
Remove some tab characers.
...
llvm-svn: 155331
2012-04-23 03:28:34 +00:00
Craig Topper
ea428fd79c
Remove some 'else' after 'return'. No functional change.
...
llvm-svn: 155330
2012-04-23 03:26:18 +00:00
Chris Lattner
5e14666149
Don't die with an assertion if the Result bitwidth is already correct. This
...
fixes an assert reading "1239123123123123" when the result is already 64-bit.
llvm-svn: 155329
2012-04-23 00:27:54 +00:00
Bill Wendling
e32c23a5e0
Cleanup whitespace.
...
llvm-svn: 155328
2012-04-23 00:23:33 +00:00
Bill Wendling
3d0ec2bedb
Limit the number of times we recurse through this algorithm. All of the
...
intructions are processed. So there's no need to look at them if they're used as
operands of other instructions.
llvm-svn: 155327
2012-04-23 00:22:55 +00:00
Rafael Espindola
cba4879534
Add a testcase that we already get right but was not being tested. Found
...
by a chrome build on OS X. Thanks to Nico Weber for testing a patch and
providing the .ii file.
llvm-svn: 155326
2012-04-22 22:31:25 +00:00
Craig Topper
bf7d5666f0
Make Extract128BitVector and Insert128BitVector take an unsigned instead of an ConstantNode SDValue. getConstant was almost always called just before only to have the functions take it apart and build a new ConstantSDNode.
...
llvm-svn: 155325
2012-04-22 20:55:18 +00:00
Benjamin Kramer
e499345e34
Sema: Initialize NSString method cache members.
...
Found by valgrind.
llvm-svn: 155324
2012-04-22 20:43:35 +00:00
Benjamin Kramer
5c17f9cb71
Remove unnecessary StringRef->char*->StringRef conversion, which read uninitialized memory if the input wasn't 0-terminated.
...
Found by valgrind.
llvm-svn: 155323
2012-04-22 20:43:30 +00:00
Craig Topper
2d474d6d92
Convert getNode(UNDEF) to getUNDEF.
...
llvm-svn: 155321
2012-04-22 19:29:34 +00:00
Craig Topper
860ed0d20a
Make calls to getVectorShuffle more consistent. Use shuffle VT for calls to getUNDEF instead of requerying. Use &Mask[0] instead of Mask.data().
...
llvm-svn: 155320
2012-04-22 19:17:57 +00:00
Craig Topper
43397c0900
Tidy up. 80 columns and argument alignment.
...
llvm-svn: 155319
2012-04-22 18:51:37 +00:00
Craig Topper
ad56a744f1
Simplify code by converting multiple places that were manually concatenating 128-bit vectors to use either CONCAT_VECTORS or a helper function. CONCAT_VECTORS will itself be lowered to the same pattern as before. The helper function is needed for concats of BUILD_VECTORs since getNode(CONCAT_VECTORS) will just return a large BUILD_VECTOR and we may be trying to lower large BUILD_VECTORS when this occurs.
...
llvm-svn: 155318
2012-04-22 18:15:59 +00:00
Rafael Espindola
1e762442c7
Cleanup testcase.
...
llvm-svn: 155317
2012-04-22 16:03:00 +00:00
Rafael Espindola
bbc5cbc410
An attribute in a explicit template installation should take precedence over
...
the tempale arguments in deciding the visibility.
This agrees with gcc 4.7.
Found by trying to build chrome with component=shared_library with 155314
reverted.
llvm-svn: 155316
2012-04-22 15:31:59 +00:00
Elena Demikhovsky
6c6cdec3de
cleaned line endings in the newly added test file
...
llvm-svn: 155315
2012-04-22 13:22:48 +00:00
Rafael Espindola
6b6e879221
Revert 155102 but add a fixme while I debug what is wrong with chrome's
...
components build.
llvm-svn: 155314
2012-04-22 12:37:27 +00:00
Benjamin Kramer
8877d68db7
ARM: Initialize the HasRAS bit.
...
Found by valgrind.
llvm-svn: 155313
2012-04-22 11:52:41 +00:00
Benjamin Kramer
2484772c14
Better C++11 support is no longer an advantage of GCC.
...
llvm-svn: 155312
2012-04-22 11:34:43 +00:00
Chandler Carruth
8ffa7c8afd
Tidy up this test more:
...
1) Make the checked assertions a bit more precise. We really want the
canonical forms coming out of reassociate to be exactly what is
expected.
2) Remove other passes, and switch the test to actually directly check
that reassociate makes the important transforms and
canonicalizations.
3) Fold in a related test case now that we're using FileCheck. Make the
same tidying changes to it.
llvm-svn: 155311
2012-04-22 10:11:26 +00:00
Chandler Carruth
f6f57535ed
FileCheck-ize a test, and tidy it up a touch.
...
llvm-svn: 155310
2012-04-22 10:11:23 +00:00
Elena Demikhovsky
8d7e56c409
ZERO_EXTEND/SIGN_EXTEND/TRUNCATE optimization for AVX2
...
llvm-svn: 155309
2012-04-22 09:39:03 +00:00
Bill Wendling
f9774c3253
Remove some potential warnings about variables used uninitialized.
...
llvm-svn: 155307
2012-04-22 07:23:04 +00:00