John McCall
3eba6e67ec
Now that we have reliable cast kinds, simplify scalar cast IR gen.
...
llvm-svn: 119332
2010-11-16 06:21:14 +00:00
John McCall
d50a27111c
Kill CK_Unknown and flesh out the documentation for the existing CastKinds.
...
llvm-svn: 119331
2010-11-16 05:46:29 +00:00
John McCall
fa8edb11e1
Teach complex compound assignment IR-generation that the RHS of
...
a compound assignment is always already in the computation type.
llvm-svn: 119330
2010-11-16 05:45:35 +00:00
Caroline Tice
ef5c6d02f5
Make processes use InputReaders for their input. Move the process
...
ReadThread stuff into the main Process class (out of the Process Plugins).
This has the (intended) side effect of disabling the command line tool
from reading input/commands while the process is running (the input is
directed to the running process rather than to the command interpreter).
llvm-svn: 119329
2010-11-16 05:07:41 +00:00
Rafael Espindola
7d19efd6ff
A bit more of gnu as compatibility when handling relocations with aliases.
...
llvm-svn: 119328
2010-11-16 04:11:46 +00:00
Jason Molenda
5920333be1
Add an UnwindPlan Row for the last instruction of a function when
...
we're using the stack pointer to define the CFA again. Makes unwinds
while sitting at the 'ret' instruction work, assuming we have accurate
function address bounds.
llvm-svn: 119327
2010-11-16 03:01:20 +00:00
John McCall
29600e160e
Kill off the remaining places which generate CK_Unknown casts.
...
llvm-svn: 119326
2010-11-16 02:32:08 +00:00
Bill Wendling
5aa33ca29d
L_bit doesn't work here.
...
llvm-svn: 119325
2010-11-16 02:20:22 +00:00
Greg Clayton
7fedea2c6f
First attempt and getting "const" C++ method function signatures correct.
...
It currently isn't working, but it should be close. I will work on this more
when I figure out what I am not doing correctly.
llvm-svn: 119324
2010-11-16 02:10:54 +00:00
Bill Wendling
3bd60eff26
- Remove dead patterns.
...
- Add encodings to the *LDMIA_RET instrs. Probably not needed...
llvm-svn: 119323
2010-11-16 02:08:45 +00:00
Ted Kremenek
64dddfb39c
Add CXString.cpp and CXString.h
...
llvm-svn: 119322
2010-11-16 02:03:55 +00:00
Bill Wendling
02089a39a0
vldm and vstm are mnemonics for vldmia and vstmia resp.
...
llvm-svn: 119321
2010-11-16 02:00:24 +00:00
Eric Christopher
08c083148b
Make the verifier a little quieter on instructions that it's probably
...
(and likely) wrong about anyhow.
llvm-svn: 119320
2010-11-16 01:58:21 +00:00
Ted Kremenek
4b4f36990d
Move CXString creation/management routines into
...
their own .cpp file and make the interpretation
of its flags private.
llvm-svn: 119319
2010-11-16 01:56:27 +00:00
Ted Kremenek
4490e1015f
Update checker build.
...
llvm-svn: 119318
2010-11-16 01:56:23 +00:00
Chris Lattner
cfedba706c
Fix a bug I introduced in the ppc refactoring, which caused long
...
branches to be emitted as:
bne cr0, 2
instead of:
bne cr0, $+8
llvm-svn: 119317
2010-11-16 01:45:05 +00:00
John McCall
2489379756
Add an ExternalASTSource hook to complete a type on demand.
...
llvm-svn: 119316
2010-11-16 01:44:35 +00:00
Bill Wendling
92756fff57
Test encodings for LDM and STM.
...
llvm-svn: 119315
2010-11-16 01:38:20 +00:00
Bill Wendling
a68e3a5397
Encode the multi-load/store instructions with their respective modes ('ia',
...
'db', 'ib', 'da') instead of having that mode as a separate field in the
instruction. It's more convenient for the asm parser and much more readable for
humans.
<rdar://problem/8654088>
llvm-svn: 119310
2010-11-16 01:16:36 +00:00
Michael J. Spencer
f177d16f68
Object: Get rid of sys::Path, Triple, and cleanup namespace.
...
llvm-svn: 119309
2010-11-16 01:06:51 +00:00
Chris Lattner
7b25d6fd52
add copy of comment to the code that will survive the mcjit'ization
...
llvm-svn: 119308
2010-11-16 00:57:32 +00:00
Chris Lattner
73716a600a
relax an assertion a bit, allowing the GPR argument of
...
these instructions to be encoded with getMachineOpValue.
This unbreaks ExecutionEngine/2003-01-04-ArgumentBug.ll
when running on a G5
llvm-svn: 119307
2010-11-16 00:55:51 +00:00
Jakob Stoklund Olesen
39aed737a6
Remember to resize SpillSlotToUsesMap when allocating an emergency spill slot.
...
Use amazing new function call technology instead of writing identical code in
multiple places.
This fixes PR8604.
llvm-svn: 119306
2010-11-16 00:41:01 +00:00
Jakob Stoklund Olesen
e2b8858611
Fix PR8612 in the standard spiller, take two.
...
The live range of a register defined by an early clobber starts at the use slot,
not the def slot.
Except when it is an early clobber tied to a use operand. Then it starts at the
def slot like a standard def.
llvm-svn: 119305
2010-11-16 00:40:59 +00:00
Bob Wilson
bafdb73e79
Add a test for Neon vector mangling
...
llvm-svn: 119304
2010-11-16 00:32:31 +00:00
Bob Wilson
1d54ee75da
Add tests for new Neon vector type attributes.
...
llvm-svn: 119303
2010-11-16 00:32:28 +00:00
Bob Wilson
77ad2c4164
Update TypePrinter::PrintVector to handle new Neon vector types.
...
llvm-svn: 119302
2010-11-16 00:32:26 +00:00
Bob Wilson
118baf7611
Add support for "neon_vector_type" and "neon_polyvector_type" attributes
...
to create the special Neon vector types. These are intended to be used in
Clang's version of <arm_neon.h> to define special Neon vector types that will
be mangled according to ARM's ABI.
llvm-svn: 119301
2010-11-16 00:32:24 +00:00
Bob Wilson
7795480992
ASTContext::getVectorType should preserve the vector kind for canonical types.
...
This is needed for Neon types when it is most natural to define them in terms
of a typedef. For example, Neon poly8_t is a typedef for "signed char", and
we want to define polynomial vectors as vectors of that typedef. Without this
change, the result will be a generic GCC-style vector. I think this is safe
for other vector types as well, but I would appreciate a review of this.
llvm-svn: 119300
2010-11-16 00:32:20 +00:00
Bob Wilson
e4652b1f22
Change CXXNameMangler::mangleNeonVectorType to require the vector type to be
...
one of the special Neon types. We'll check for invalid Neon vectors when
they are created, so there's no point in handling them when mangling.
llvm-svn: 119299
2010-11-16 00:32:18 +00:00
Bob Wilson
4348a800ca
Fix a comment typo.
...
llvm-svn: 119298
2010-11-16 00:32:16 +00:00
Bob Wilson
59f9dec8cd
Use getTypeSize() method.
...
llvm-svn: 119297
2010-11-16 00:32:12 +00:00
Owen Anderson
05a8daee21
Add Thumb2 encodings for mov and friends.
...
llvm-svn: 119295
2010-11-16 00:29:56 +00:00
John McCall
36459fdbad
Add another case to the whitelist of cast kinds that can convert to bool.
...
Fixes PR8608.
llvm-svn: 119293
2010-11-16 00:12:50 +00:00
Ted Kremenek
a4c27ec73b
CursorVisitor: cache worklists created for data-recursion to reduce malloc() traffic.
...
llvm-svn: 119290
2010-11-15 23:31:32 +00:00
John McCall
8d69a2160e
Add a new expression kind, OpaqueValueExpr, which is useful for
...
certain internal type-checking procedures as well as for representing
certain implicitly-generated operations. Uses to follow.
llvm-svn: 119289
2010-11-15 23:31:06 +00:00
Zhanyong Wan
24f6742b34
Adds a README for the Clang static analyzer to document its design and work flow. The contents are taken from email notes by kremenek and xuzhongxing.
...
llvm-svn: 119288
2010-11-15 23:19:25 +00:00
Ted Kremenek
acd03f6fa3
Use LLVM_ATTRIBUTE_NOINLINE instead of attribute((noinline)).
...
llvm-svn: 119287
2010-11-15 23:11:54 +00:00
Rafael Espindola
d1993eb2a4
Change the 11 byte nop to be a single instruction.
...
llvm-svn: 119286
2010-11-15 23:10:30 +00:00
Douglas Gregor
c65929299d
Tweak libclang's heuristics for building precompiled preambles and
...
caching global code-completion results. In particular, don't perform
either operation the first time we parse, but do both after the first
reparse.
llvm-svn: 119285
2010-11-15 23:00:34 +00:00
Ted Kremenek
18fb1665bf
Remove invalid assertion from CFG builder. When building the CFG pieces for a ternary '?' expression,
...
it is possible for the confluence block to only have a single predecessor due to calls to 'noreturn'
functions. Fixes assertion failure reported in PR 8619.
llvm-svn: 119284
2010-11-15 22:59:22 +00:00
Chris Lattner
bf9f2f2c29
fix a pasto that massively broke the ppc jit while the buildbots happened
...
to be broken for other reasons
llvm-svn: 119283
2010-11-15 22:50:50 +00:00
Ted Kremenek
e6f030467c
Cast pointers instead of returning a new value within RunVisitorWorkList().
...
llvm-svn: 119282
2010-11-15 22:23:26 +00:00
Ted Kremenek
51df4d5596
Annotate CursorVisitor::VisitDataRecursive() with attribute 'noinline'.
...
Clang currently uses a ridiculous amount of stack space when inlining
this function, which can lead to premature stack overflows.
llvm-svn: 119281
2010-11-15 22:23:24 +00:00
Jakob Stoklund Olesen
97154f67d9
Revert "Fix PR8612 in the standard spiller as well."
...
This reverts r119183 which borke the buildbots.
llvm-svn: 119270
2010-11-15 21:51:51 +00:00
Owen Anderson
ea96321781
Attempt to provide encodings for some miscellaneous Thumb2 encodings.
...
llvm-svn: 119187
2010-11-15 21:30:39 +00:00
Evan Cheng
2ce016c7f8
Code clean up. The peephole pass should be the one updating the instruction
...
iterator, not TII->OptimizeCompareInstr.
llvm-svn: 119186
2010-11-15 21:20:45 +00:00
Owen Anderson
7d97a99f4c
Provide Thumb2 encodings for sxtb and friends.
...
llvm-svn: 119185
2010-11-15 21:12:05 +00:00
Eric Christopher
964943780b
Recommit this change and remove the failing part of the test - it didn't
...
pass in the first place and was masked by earlier failures not warning
and aborting the block.
llvm-svn: 119184
2010-11-15 21:11:06 +00:00
Jakob Stoklund Olesen
97825bcbfd
Fix PR8612 in the standard spiller as well.
...
The live range of a register defined by an early clobber starts at the use slot,
not the def slot.
llvm-svn: 119183
2010-11-15 20:55:53 +00:00