Bob Wilson
db46af0461
Implement Neon VTRN instructions. For now, anyway, these are selected
...
directly from the intrinsics produced by the frontend. If it is more
convenient to have a custom DAG node for using these to implement shuffles,
we can add that later.
llvm-svn: 78459
2009-08-08 05:53:00 +00:00
Daniel Dunbar
713302883e
llvm-mc/AsmMatcher: Switch to a unified function to convert operands to MCInst,
...
so that terminal states are as simple as possible.
- If we were willing to assume that the order that operands get inserted in the
MCInst is fixed we could actually dispose with this altogether, although it
might be nice to have the flexibility to change it later.
llvm-svn: 78458
2009-08-08 05:24:34 +00:00
Edward O'Callaghan
f8ba5e9e6e
Optimized versions now buildable on Solaris.
...
llvm-svn: 78457
2009-08-08 04:43:56 +00:00
Evan Cheng
1be453b462
Add a skeleton Thumb2 instruction size reduction pass.
...
llvm-svn: 78456
2009-08-08 03:21:23 +00:00
Evan Cheng
2aa91cc2be
Code refactoring. No functionality change.
...
llvm-svn: 78455
2009-08-08 03:20:32 +00:00
Evan Cheng
274fcbe43e
tADDhirr should target GPR, not tGPR.
...
llvm-svn: 78454
2009-08-08 03:19:44 +00:00
Evan Cheng
4dc201eb64
I can type.
...
llvm-svn: 78453
2009-08-08 02:54:37 +00:00
Anders Carlsson
c5c57c3b86
Get rid of Stmt::Clone now that we can reference count statements instead.
...
llvm-svn: 78452
2009-08-08 02:50:17 +00:00
Edward O'Callaghan
032ab6f978
Fix signedness warning in mprotect call, Clean up and improve endianness.h header.
...
llvm-svn: 78451
2009-08-08 02:31:50 +00:00
Douglas Gregor
2c742024ff
Introduce reference counting for statements and expressions, using it
...
to allow sharing of nodes. Simplifies some aspects of template
instantiation, and fixes both PR3444 and <rdar://problem/6757457>.
llvm-svn: 78450
2009-08-08 01:41:12 +00:00
Chris Lattner
b94284b5e2
make printInstruction return void since its result is omitted. Make the
...
error condition get trapped with an assert.
llvm-svn: 78449
2009-08-08 01:32:19 +00:00
Fariborz Jahanian
7c3d7f6c59
Remove use of uninitized variable.
...
llvm-svn: 78448
2009-08-08 00:59:58 +00:00
Daniel Dunbar
4bfb4c80e0
Fix some -Asserts unused variable warnings.
...
llvm-svn: 78447
2009-08-08 00:40:46 +00:00
Andreas Bolka
3becda83ef
Add another Strong-SIV testcase.
...
llvm-svn: 78446
2009-08-08 00:21:49 +00:00
Fariborz Jahanian
59b3259284
Synthesize copying of non-static data members with
...
non-trivial copy constructors.
llvm-svn: 78445
2009-08-08 00:15:41 +00:00
Chris Lattner
b1692dc267
don't check the result of printInstruction anymore.
...
llvm-svn: 78444
2009-08-08 00:05:42 +00:00
Anton Korobeynikov
674ffc1e59
Do not generate 32-bit call on win64 when imm does not fit
...
llvm-svn: 78443
2009-08-07 23:59:21 +00:00
Chris Lattner
6eceb7c85d
rename test
...
llvm-svn: 78441
2009-08-07 23:57:30 +00:00
Chris Lattner
ff8d04e815
merge a bunch of tests together into one, convert to filecheck which
...
is more tolerant of whitespace differences.
llvm-svn: 78439
2009-08-07 23:56:42 +00:00
Bob Wilson
40ff4a190f
Add new intrinsics for Neon VTRN, VZIP and VUZP operations. Modeling these
...
as vector shuffles did not work out well. Shuffles that produce double-wide
vectors accurately represent the operation but make it hard to do anything
with the results. I considered splitting them up into 2 shuffles, one to
write each register separately, but there doesn't seem to be a good way to
reunite them for codegen.
llvm-svn: 78437
2009-08-07 23:53:05 +00:00
Fariborz Jahanian
b68df0bc42
Synthesized copy constructor now generates code for
...
copying non-virtual base classes which have non-trivial
constructor. Work in progress.
llvm-svn: 78436
2009-08-07 23:51:33 +00:00
Daniel Dunbar
11595b20fc
Add DEBUG_WITH_TYPE as a clean alternative to tweaking DEBUG_TYPE.
...
This:
--
#undef DEBUG_TYPE
#define DEBUG_TYPE "foo"
DEBUG(...)
#undef DEBUG_TYPE
#define DEBUG_TYPE ""
--
becomes this:
--
DEBUG_WITH_TYPE("foo", ...)
--
llvm-svn: 78435
2009-08-07 23:48:59 +00:00
Anders Carlsson
8fc489da2a
Add a CK_ArrayToPointerDecay cast kind.
...
llvm-svn: 78434
2009-08-07 23:48:20 +00:00
Bob Wilson
97262e01d5
Convert more Neon tests to use FileCheck.
...
llvm-svn: 78433
2009-08-07 23:45:02 +00:00
Chris Lattner
84b9db2926
code cleanup
...
llvm-svn: 78432
2009-08-07 23:42:01 +00:00
Benjamin Kramer
dd71ebbab0
Unbreak build.
...
llvm-svn: 78431
2009-08-07 23:37:47 +00:00
David Goodwin
742db6a6d4
Make NEON single-precision FP support the default for cortex-a8 (again).
...
llvm-svn: 78430
2009-08-07 23:32:33 +00:00
Anders Carlsson
ec143777ba
Add CK_ToUnion and use it for aggregate expression codegen.
...
llvm-svn: 78429
2009-08-07 23:22:37 +00:00
Chris Lattner
e35472e3a9
remove a bunch of now-dead crud from the asmprinter and TAI interfaces.
...
llvm-svn: 78428
2009-08-07 23:16:27 +00:00
Chris Lattner
2d423d5a95
fix the column output stuff in the asmwriter from being dynamic and
...
driven by TAI to being static, driven by tblgen. This means that a
target doesn't get impacted by this stuff at all if it doesn't opt
into it.
llvm-svn: 78427
2009-08-07 23:13:38 +00:00
Andreas Bolka
7a5c8db6b5
Fix copy-pasto.
...
llvm-svn: 78426
2009-08-07 22:55:26 +00:00
Anton Korobeynikov
d28a26dfab
Unbreak the stuff
...
llvm-svn: 78425
2009-08-07 22:51:13 +00:00
Argyrios Kyrtzidis
885e6382eb
Modifications to dyn_cast/cast to make them work for objects too, instead of only pointers.
...
The use case is if you have a wrapper class:
class Base {
void *Ptr;
public:
Base() : Ptr(0) { }
operator bool() const { return Ptr; }
.....
}
and sub-wrappers that have exactly the same size:
class Sub : public Base {
public:
....
static bool classof(const Base*);
}
and in the code you would do:
void f(Base b) {
Sub sub = dyn_cast<Sub>(b);
if (sub) {
....
}
}
llvm-svn: 78424
2009-08-07 22:49:24 +00:00
Kevin Enderby
d9f952948e
Added Mac OS X assembler style conditional assembly. I may come back and see if
...
I can clean this up a bit more and do way with the TheCondState and just use
the top element on the TheCondStack if not empty. Also may tweak the code
around ParseConditionalAssemblyDirectives() to simplify the AsmParser code.
llvm-svn: 78423
2009-08-07 22:46:00 +00:00
Chris Lattner
02bec55199
fix comment pastos
...
llvm-svn: 78422
2009-08-07 22:44:56 +00:00
Evan Cheng
8611e90668
Back out some of recent register scavenger change by John Mosby. It broke a number of ARM tests.
...
llvm-svn: 78421
2009-08-07 22:39:43 +00:00
Andrew Lenharth
a190c169bf
avoid this libcall with long inline expansion
...
llvm-svn: 78420
2009-08-07 22:37:20 +00:00
Anton Korobeynikov
23b28cb824
2 more vdup.32 cases
...
llvm-svn: 78419
2009-08-07 22:36:50 +00:00
Evan Cheng
fb93be2b6f
A big oops. Thumb1 default CC is a def of CPSR, not a use of CPSR.
...
llvm-svn: 78418
2009-08-07 22:36:37 +00:00
Chris Lattner
83eb9b0b01
strength reduce anonymous namespace to static.
...
llvm-svn: 78417
2009-08-07 22:27:19 +00:00
Chris Lattner
5333a7b8c5
tidy up
...
llvm-svn: 78416
2009-08-07 22:26:50 +00:00
Anders Carlsson
f10e414e4e
More CastKind work.
...
llvm-svn: 78415
2009-08-07 22:21:05 +00:00
John McCall
c7e8e795fa
Just add global scope to the associated namespaces set instead of tracking it
...
separately. Add the framework (currently unfed) for finding friend declarations
during argument-dependent lookup.
llvm-svn: 78414
2009-08-07 22:18:02 +00:00
Mike Stump
16644668cd
Add vbase offsets to the vtable. Wow, having an rbegin was so
...
fortuitous. WIP.
llvm-svn: 78413
2009-08-07 21:54:03 +00:00
Mike Stump
d9687fded6
Add rbegin and rend for virtual bases, might come in handy some day.
...
llvm-svn: 78412
2009-08-07 21:44:39 +00:00
Bill Wendling
fe3bdb4b6f
Reformatting of lines. Put multiple DEBUG statements under one DEBUG statement.
...
llvm-svn: 78411
2009-08-07 21:33:25 +00:00
Evan Cheng
6e130db3b7
Thumb2 32-bit ldm / stm needs .w suffix if submode is ia.
...
llvm-svn: 78410
2009-08-07 21:19:10 +00:00
Ted Kremenek
0e8e1fde25
Fix: <rdar://problem/7075531> static analyzer wrongly detects unused ivars used in blocks
...
llvm-svn: 78409
2009-08-07 21:13:23 +00:00
Daniel Dunbar
d0470d74df
llvm-mc/AsmMatcher: Move emit for register -> enum matcher into a separate routine.
...
llvm-svn: 78408
2009-08-07 21:01:44 +00:00
Ted Kremenek
d99f2866ac
Constify some pointers. No functionality change.
...
llvm-svn: 78407
2009-08-07 20:55:20 +00:00