Chandler Carruth
37ab257b88
Revert r145180 as it is causing test failures on all the bots.
...
Original commit message:
Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
llvm-svn: 145182
2011-11-27 10:37:47 +00:00
Chandler Carruth
9e46684154
Fix an impressive type-o / spell-o Duncan noticed.
...
llvm-svn: 145181
2011-11-27 10:32:16 +00:00
Danil Malyshev
2631f93f7d
Fixed ObjectFile functions:
...
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
llvm-svn: 145180
2011-11-27 10:12:52 +00:00
Chandler Carruth
a054580993
Rework a bit of the implementation of loop block rotation to not rely so
...
heavily on AnalyzeBranch. That routine doesn't behave as we want given
that rotation occurs mid-way through re-ordering the function. Instead
merely check that there are not unanalyzable branching constructs
present, and then reason about the CFG via successor lists. This
actually simplifies my mental model for all of this as well.
The concrete result is that we now will rotate more loop chains. I've
added a test case from Olden highlighting the effect. There is still
a bit more to do here though in order to regain all of the performance
in Olden.
llvm-svn: 145179
2011-11-27 09:22:53 +00:00
Chris Lattner
0bcbde46e2
Eli managed to kill off llvm.membarrier in llvm 3.0 also, this means
...
that mainline needs no autoupgrade logic for intrinsics yet, woohoo!
llvm-svn: 145178
2011-11-27 08:42:07 +00:00
Chris Lattner
3dcdc29d11
add some final random notes, I've completed my pass over all the commits.
...
I'll work on turning this into something intelligible tomorrow.
llvm-svn: 145177
2011-11-27 08:32:32 +00:00
Chris Lattner
410f3d7f5d
The llvm.atomic intrinsics *were* removed in LLVM 3.0 (in r141333), remove the
...
autoupgrade logic for 2.9 and before.
llvm-svn: 145176
2011-11-27 08:18:55 +00:00
Chris Lattner
ee471c484a
remove autoupgrade support for old forms of llvm.prefetch and the old
...
trampoline forms. Both of these were correct in LLVM 3.0, and we don't
need to support LLVM 2.9 and earlier in mainline.
llvm-svn: 145174
2011-11-27 07:42:04 +00:00
Chris Lattner
d5bb9e6c4c
add some notes.
...
llvm-svn: 145173
2011-11-27 07:37:53 +00:00
Chris Lattner
bc639298e5
remove asmparsing and documentation support for "volatile load", which was only produced by LLVM 2.9 and earlier. LLVM 3.0 and later prefers "load volatile".
...
llvm-svn: 145172
2011-11-27 06:56:53 +00:00
Chris Lattner
6a144a2227
Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic.
...
llvm-svn: 145171
2011-11-27 06:54:59 +00:00
Chris Lattner
ebed15e973
some notes.
...
llvm-svn: 145170
2011-11-27 06:24:49 +00:00
Chris Lattner
90ef78c07f
remove autoupgrade support for really old-style debug info intrinsics.
...
I think this is the last of autoupgrade that can be removed in 3.1.
Can the atomic upgrade stuff also go?
llvm-svn: 145169
2011-11-27 06:18:33 +00:00
Bob Wilson
800b2b42ed
Use libcxx makefile's do-installhdrs target. <rdar://problem/10397739>
...
llvm-svn: 145168
2011-11-27 06:13:25 +00:00
Chris Lattner
6aa6c0c3b7
remove some old autoupgrade logic
...
llvm-svn: 145167
2011-11-27 06:10:54 +00:00
Chris Lattner
db89153969
remove autoupgrade support for LLVM 2.9 exception stuff. Mainline supports
...
LLVM 3.0 and later.
llvm-svn: 145165
2011-11-27 05:56:16 +00:00
Chris Lattner
1c9e5678b8
remove support for reading llvm 2.9 .bc files. LLVM 3.1 is only compatible back to 3.0
...
llvm-svn: 145164
2011-11-27 05:48:27 +00:00
Chris Lattner
74a3e00ebf
add some notes
...
llvm-svn: 145163
2011-11-27 05:47:57 +00:00
Bob Wilson
8a3c663e95
Refactor libcxx makefile. No functional changes intended.
...
Besides cleaning up the repetition in the installhdrs target, the point of this
change is to provide a separate do-installhdrs target that can be used directly
from clang's runtime/libcxx makefile to install a copy of the headers along
with clang. <rdar://problem/10397739>
llvm-svn: 145162
2011-11-27 05:39:58 +00:00
Wesley Peck
97b3da5433
Add several new instructions supported by the latest MicroBlaze.
...
These instructions are not generated by the backend yet, this will come in a later commit.
llvm-svn: 145161
2011-11-27 05:16:58 +00:00
Bob Wilson
8e6d9da04c
Partially revert r145157 to quiet an unhappy buildbot.
...
Removing that buildbot would be a better solution, but this is at least
a temporary workaround.
llvm-svn: 145160
2011-11-27 01:48:54 +00:00
Wesley Peck
d2e2e1782f
Optimize comparison against 0 in conditional instructions.
...
Fix a couple of 80-column violations.
llvm-svn: 145159
2011-11-27 01:36:20 +00:00
Chandler Carruth
9ffb97e631
Introduce a loop block rotation optimization to the new block placement
...
pass. This is designed to achieve one of the important optimizations
that the old code placement pass did, but more simply.
This is a somewhat rough and *very* conservative version of the
transform. We could get a lot fancier here if there are profitable cases
to do so. In particular, this only looks for a single pattern, it
insists that the loop backedge being rotated away is the last backedge
in the chain, and it doesn't provide any means of doing better in-loop
placement due to the rotation. However, it appears that it will handle
the important loops I am finding in the LLVM test suite.
llvm-svn: 145158
2011-11-27 00:38:03 +00:00
Bob Wilson
4eefd2d52f
Merge the install-clang-c target into install-clang. <rdar://problem/10217046>
...
llvm-svn: 145157
2011-11-27 00:26:22 +00:00
Benjamin Kramer
7ba71be392
Move code into anonymous namespaces.
...
llvm-svn: 145154
2011-11-26 23:01:57 +00:00
Craig Topper
51280d565b
Merge 128-bit and 256-bit X86ISD node types for VPERMILPS and VPERMILPD. Simplify some shuffle lowering code since V1 can never be UNDEF due to canonalizing that occurs when shuffle nodes are created.
...
llvm-svn: 145153
2011-11-26 22:55:48 +00:00
Wesley Peck
69d5040485
Rename a couple of options and fix some simple typos.
...
llvm-svn: 145152
2011-11-26 21:50:38 +00:00
Rafael Espindola
d086573a4d
Add the minimum implementation of cpuid.h. This works on "modern" intel cpus
...
and on clang, which seams to handled "=b" correctly even when ebx is the
PIC register.
llvm-svn: 145149
2011-11-26 20:53:19 +00:00
Craig Topper
7704bd7ac3
Collapse X86ISD node types for PUNPCKH*, PUNPCKL*, UNPCKLP*, and UNPCKHP* to not be type specific. Now we just have integer high and low and floating point high and low. Pattern matching will choose the correct instruction based on the vector type.
...
llvm-svn: 145148
2011-11-26 20:47:44 +00:00
Nicola Gigante
c8edb0f657
Test commit
...
llvm-svn: 145147
2011-11-26 16:20:01 +00:00
Abramo Bagnara
edf99fff49
Fixed lexical declaration context when instantiating a friend / out-of-line class template member.
...
llvm-svn: 145146
2011-11-26 13:33:46 +00:00
Benjamin Kramer
8c8486dbb2
Move the branch probability blurb into the optimizer section. Add a minimal bullet for AVX.
...
llvm-svn: 145145
2011-11-26 11:14:54 +00:00
David Chisnall
07618783f3
Added Objective-C and libc++ details to the 3.0 release notes.
...
llvm-svn: 145144
2011-11-26 10:56:17 +00:00
Chandler Carruth
f156f0cf57
FileCheck-ize this test and make it more precise. This is in preparation
...
for adding other tests.
llvm-svn: 145143
2011-11-26 08:24:25 +00:00
Rafael Espindola
04268df8ed
Set __OPTIMIZE_SIZE__ on -Os and -Oz. This matches gcc's behaviour on both OS X
...
and linux.
llvm-svn: 145142
2011-11-26 06:21:20 +00:00
Eli Friedman
a84ad7d0d0
Fix APFloat::convert so that it handles narrowing conversions correctly; it
...
was returning incorrect values in rare cases, and incorrectly marking
exact conversions as inexact in some more common cases. Fixes PR11406, and a
missed optimization in test/CodeGen/X86/fp-stack-O0.ll.
llvm-svn: 145141
2011-11-26 03:38:02 +00:00
Benjamin Kramer
a02af616b1
shpelling
...
llvm-svn: 145138
2011-11-25 21:26:00 +00:00
Benjamin Kramer
889b243fd6
Remove ZooLib from the projects list.
...
I don't see how the project is using LLVM and we really can't list every user of
the clang analyzer. Sorry.
llvm-svn: 145137
2011-11-25 21:03:06 +00:00
Chris Lattner
c3e4fdcc10
add a user
...
llvm-svn: 145136
2011-11-25 20:36:17 +00:00
Chris Lattner
614d0391e9
add some notes
...
llvm-svn: 145135
2011-11-25 20:33:27 +00:00
Chris Lattner
e5b37be30a
add faust
...
llvm-svn: 145134
2011-11-25 20:28:16 +00:00
Bruno Cardoso Lopes
0f9a1f5e6c
This patch contains support for encoding FMA4 instructions and
...
tablegen patterns for scalar FMA4 operations and intrinsic. Also
add tests for vfmaddsd.
Patch by Jan Sjodin
llvm-svn: 145133
2011-11-25 19:33:42 +00:00
NAKAMURA Takumi
989eaf6e3f
ARMLoadStoreOptimizer.cpp: Fix MSVC(Debug) build.
...
llvm-svn: 145129
2011-11-25 09:19:57 +00:00
Francois Pichet
de232cb166
In Microsoft mode, make "Unqualified lookup into dependent bases of class templates" works inside a friend function definition at class scope.
...
Basically we have to look into the parent *lexical* DeclContext for friend functions at class scope. That's because calling GetParent() return the namespace or file DeclContext.
This fixes all remaining cases of "Unqualified lookup into dependent bases of class templates" when parsing MFC code with clang.
llvm-svn: 145127
2011-11-25 01:10:54 +00:00
Craig Topper
d65a444478
Remove 256-bit specific node types for UNPCKHPS/D and instead use the 128-bit versions and let the operand type disinquish. Also fix the load form of the v8i32 patterns for these to realize that the load would be promoted to v4i64.
...
llvm-svn: 145126
2011-11-24 22:57:10 +00:00
Craig Topper
d26466748b
Remove AVX2 specific X86ISD node types for PUNPCKH/L and instead just reuse the 128-bit versions and let the vector type distinguish.
...
llvm-svn: 145125
2011-11-24 22:20:08 +00:00
Benjamin Kramer
8a2d143672
Devirtualize Pass::getPassID, overriding it isn't useful and it gets called a lot.
...
While at it pull the trivial ctor in line.
llvm-svn: 145124
2011-11-24 21:14:11 +00:00
Benjamin Kramer
6709e05012
Make ConstantRange::truncate a bit more efficient.
...
llvm-svn: 145122
2011-11-24 17:24:33 +00:00
Benjamin Kramer
651db37352
X86: alias cqo to cqto.
...
llvm-svn: 145121
2011-11-24 12:02:46 +00:00
Chandler Carruth
7adee1a01a
Fix a silly use-after-free issue. A much earlier version of this code
...
need lots of fanciness around retaining a reference to a Chain's slot in
the BlockToChain map, but that's all gone now. We can just go directly
to allocating the new chain (which will update the mapping for us) and
using it.
Somewhat gross mechanically generated test case replicates the issue
Duncan spotted when actually testing this out.
llvm-svn: 145120
2011-11-24 11:23:15 +00:00