Peter Collingbourne
e57e9ef9b7
Remove static_casts from SemaDeclAttr.cpp
...
llvm-svn: 120053
2010-11-23 20:45:58 +00:00
Howard Hinnant
53a3dfcf98
Update testsuite strucuture to latest draft
...
llvm-svn: 120052
2010-11-23 20:45:26 +00:00
Duncan Sands
0488d564e1
Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing.
...
llvm-svn: 120051
2010-11-23 20:42:39 +00:00
Howard Hinnant
2066341b0d
Update testsuite strucuture to latest draft
...
llvm-svn: 120050
2010-11-23 20:41:07 +00:00
Benjamin Kramer
94a622af4c
The srem -> urem transform is not safe for any divisor that's not a power of two.
...
E.g. -5 % 5 is 0 with srem and 1 with urem.
Also addresses Frits van Bommel's comments.
llvm-svn: 120049
2010-11-23 20:33:57 +00:00
Chris Lattner
966b25b938
tidy up code, add a comment about dir caching.
...
llvm-svn: 120048
2010-11-23 20:30:42 +00:00
Howard Hinnant
165e25c974
Update testsuite strucuture to latest draft
...
llvm-svn: 120047
2010-11-23 20:29:54 +00:00
Howard Hinnant
1435748d25
Update testsuite strucuture to latest draft
...
llvm-svn: 120046
2010-11-23 20:27:28 +00:00
Howard Hinnant
4030e72457
Update testsuite strucuture to latest draft
...
llvm-svn: 120045
2010-11-23 20:26:48 +00:00
Duncan Sands
433c1679cf
Replace calls to ConstantFoldInstruction with calls to SimplifyInstruction
...
in two places that are really interested in simplified instructions, not
constants.
llvm-svn: 120044
2010-11-23 20:26:33 +00:00
Howard Hinnant
46cc61ea7c
Update testsuite strucuture to latest draft
...
llvm-svn: 120043
2010-11-23 20:25:10 +00:00
Duncan Sands
bb2cd025a9
Constant folding here is pointless, because InstructionSimplify
...
(which does constant folding and more) is called a few lines
later.
llvm-svn: 120042
2010-11-23 20:24:21 +00:00
Howard Hinnant
968df4fdff
Update testsuite strucuture to latest draft
...
llvm-svn: 120041
2010-11-23 20:22:13 +00:00
Howard Hinnant
e8ce332127
Update testsuite strucuture to latest draft
...
llvm-svn: 120040
2010-11-23 20:21:36 +00:00
Chris Lattner
ea61b32c4a
replicate a terrible hack to fix a build error on VC++
...
llvm-svn: 120039
2010-11-23 20:07:39 +00:00
Chris Lattner
8f0583daa2
simplify the cache miss handling code, eliminating CacheMissing.
...
llvm-svn: 120038
2010-11-23 20:05:15 +00:00
Chris Lattner
5769c3dffd
factor the "cache miss" handling code out of FM into a static
...
method in FileSystemStatCache.
llvm-svn: 120037
2010-11-23 19:56:39 +00:00
Howard Hinnant
274541968b
Update testsuite strucuture to latest draft
...
llvm-svn: 120036
2010-11-23 19:52:19 +00:00
Jason W Kim
8e21bf84e8
Move the ARM reloc constants to Support/ELF.h
...
llvm-svn: 120035
2010-11-23 19:40:36 +00:00
Bob Wilson
d7d2cf7842
Recognize sign/zero-extended constant BUILD_VECTORs for VMULL operations.
...
We need to check if the individual vector elements are sign/zero-extended
values. For now this only handles constants values. Radar 8687140.
llvm-svn: 120034
2010-11-23 19:38:38 +00:00
Bob Wilson
b91ae1ac52
Fix copy-and-paste error in exception message.
...
llvm-svn: 120033
2010-11-23 19:38:34 +00:00
Chris Lattner
b3c814538b
r120013 dropped passing in the precomputed file size to
...
MemoryBuffer::getFile, causing us to pick up a fstat for
every file. Restore the optimization.
llvm-svn: 120032
2010-11-23 19:38:22 +00:00
Chris Lattner
2a6fa47b26
PCH files only cache successful stats. Remove the code that reads/writes
...
the result code of the stat to/from the PCH file since it is always 0.
llvm-svn: 120031
2010-11-23 19:28:12 +00:00
Chris Lattner
226efd356c
rework the stat cache, pulling it out of FileManager.h into
...
its own header and giving it some more structure. No
functionality change.
llvm-svn: 120030
2010-11-23 19:19:34 +00:00
Howard Hinnant
e5cb278766
Update testsuite strucuture to latest draft
...
llvm-svn: 120029
2010-11-23 19:15:49 +00:00
Benjamin Kramer
b5afa65b0a
InstCombine: Reduce "X shift (A srem B)" to "X shift (A urem B)" iff B is positive.
...
This allows to transform the rem in "1 << ((int)x % 8);" to an and.
llvm-svn: 120028
2010-11-23 18:52:42 +00:00
Howard Hinnant
e3120ed1bf
N3188 - Revision to N3113: Async Launch Policies (CH 36)
...
llvm-svn: 120027
2010-11-23 18:33:54 +00:00
Duncan Sands
60813f96e0
Propagate LeftDistributes and RightDistributes into their only uses.
...
Stylistic improvement suggested by Frits van Bommel.
llvm-svn: 120026
2010-11-23 15:28:14 +00:00
Duncan Sands
22df741687
Fix typo pointed out by Frits van Bommel and Marius Wachtler.
...
llvm-svn: 120025
2010-11-23 15:25:34 +00:00
Duncan Sands
adc7771f18
Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a
...
fairly systematic way in instcombine. Some of these cases were already dealt
with, in which case I removed the existing code. The case of Add has a bunch of
funky logic which covers some of this plus a few variants (considers shifts to be
a form of multiplication), which I didn't touch. The simplification performed is:
A*B+A*C -> A*(B+C). The improvement is to do this in cases that were not already
handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and
also to do it more often by not checking for "only one use" if "B+C" simplifies.
llvm-svn: 120024
2010-11-23 14:23:47 +00:00
Kalle Raiskila
e1b6c273b8
Division by pow-of-2 is not cheap on SPU, do it with
...
shifts.
llvm-svn: 120022
2010-11-23 13:27:59 +00:00
Rafael Espindola
f6c05b1d01
Implement the rex64 prefix.
...
llvm-svn: 120017
2010-11-23 11:23:24 +00:00
Duncan Sands
a021988d64
Expand a little on the description of what InstructionSimplify does.
...
llvm-svn: 120016
2010-11-23 10:50:08 +00:00
Duncan Sands
763dec0ab8
Clarify that constant folding of instructions applies when all operands
...
are constant. There was in fact one exception to this (phi nodes) - so
remove that exception (InstructionSimplify handles this so there should
be no loss).
llvm-svn: 120015
2010-11-23 10:16:18 +00:00
John McCall
20c00e0e7b
This test does not need to test the alignment of pointers. Make it pass
...
on 64-bit systems.
llvm-svn: 120014
2010-11-23 10:15:48 +00:00
Chris Lattner
26b5c190f8
tidy up. Split FileManager::getBufferForFile into
...
two copies, since they are fundamentally different
operations and the StringRef one should go away
(it shouldn't be part of FileManager at least).
Remove some dead arguments.
llvm-svn: 120013
2010-11-23 09:19:42 +00:00
Chris Lattner
7219a5db6e
don't allow remapping PTH file paths with -fworking-directory, the
...
client should just pass in absolute paths.
llvm-svn: 120012
2010-11-23 09:01:31 +00:00
Chris Lattner
5631b052c3
reduce indentation and use early outs, to make it easier to read
...
this code. no functionality change.
llvm-svn: 120011
2010-11-23 08:50:03 +00:00
Chris Lattner
5159f6162e
now the FileManager has a FileSystemOpts ivar, stop threading
...
FileSystemOpts through a ton of apis, simplifying a lot of code.
This also fixes a latent bug in ASTUnit where it would invoke
methods on FileManager without creating one in some code paths
in cindextext.
llvm-svn: 120010
2010-11-23 08:35:12 +00:00
Rafael Espindola
5c1d4e3b1e
Invalidate the layout on any relaxation, not just Instructions. Bug found by David Meyer.
...
While here, remove unused argument and rename UpdateForSlide to Invalidate.
llvm-svn: 120009
2010-11-23 08:08:33 +00:00
Chris Lattner
ec39c9d3d6
make this file be self contained.
...
llvm-svn: 120008
2010-11-23 08:05:27 +00:00
Chris Lattner
3f5a9efb2d
give FileManager a 'FileSystemOptions' ivar, which will be used
...
to simplify a bunch of code in it. It should ultimately get inlined
into FileManager.
llvm-svn: 120007
2010-11-23 07:51:02 +00:00
Rafael Espindola
3c7cab1402
Produce a relocation for pcrel absolute values. Based on a patch by David Meyer.
...
llvm-svn: 120006
2010-11-23 07:20:12 +00:00
Francois Pichet
ce87a7e45c
long => int to make the test pass on system where sizeof(long) = 64.
...
llvm-svn: 120005
2010-11-23 07:15:13 +00:00
Zhanyong Wan
19ec4ee093
Fix a typo in a comment.
...
llvm-svn: 120004
2010-11-23 06:43:05 +00:00
Cameron Zwarich
767a389fa5
Optimize a common case in the Lengauer-Tarjan dominators algorithm. This gives a
...
9.7% speedup running domtree on test-suite.
Reviewed by Chris Lattner.
llvm-svn: 120003
2010-11-23 06:32:37 +00:00
Chris Lattner
2dd97d2d60
Revert functionality doug added in r98575 that was never
...
documented and only used by some clang stuff I just removed.
llvm-svn: 120002
2010-11-23 06:09:51 +00:00
Chris Lattner
4ac569b2c6
Partially revert Doug's PCH validation patch (r98585).
...
This patch completely defeated the "passing in a prestat'd size
to MemoryBuffer" optimization, leading to an extra fstat call for
every buffer opened, in order to find out if the datestamp and size
of the file on disk matches what is in the stat cache.
I fully admit that I don't completely understand what is going on here:
why punish code when a stat cache isn't in use? what is the point of a
stat cache if you have to turn around and stat stuff to validate it?
To resolve both these issues, just drop the modtime check and check the
file size, which is the important thing anyway. This should also resolve
PR6812, because presumably windows is stable when it comes to file sizes.
If the modtime is actually important, we should get it and keep it on the
first stat.
This eliminates 833 fstat syscalls when processing Cocoa.h, speeding up
system time on -Eonly Cocoa.h from 0.041 to 0.038s.
llvm-svn: 120001
2010-11-23 06:09:11 +00:00
Francois Pichet
0c71f6c5d3
Microsoft C anonymous struct implementation.
...
Documentation: http://msdn.microsoft.com/en-us/library/z2cx9y4f.aspx
llvm-svn: 120000
2010-11-23 06:07:27 +00:00
Rafael Espindola
6e13aa1d3b
Reuse data fragments while lowering. Patch by David Meyer.
...
llvm-svn: 119999
2010-11-23 05:49:35 +00:00