- Aug 08, 2009
-
-
Jakob Stoklund Olesen authored
Verify that early clobber registers and their aliases are not used. All changes to RegsAvailable are now done as a transaction so the order of operands makes no difference. The included test case is from PR4686. It has behaviour that was dependent on the order of operands. llvm-svn: 78465
-
Andrew Lenharth authored
llvm-svn: 78464
-
Benjamin Kramer authored
llvm-svn: 78463
-
Benjamin Kramer authored
llvm-svn: 78462
-
Daniel Dunbar authored
- This doesn't actually improve the algorithm (its still linear), but the generated (match) code is now fairly compact and table driven. Still need a generic string matcher. - The table still needs to be compressed, this is quite simple to do and should shrink it to under 16k. - This also simplifies and restructures the code to make the match classes more explicit, in anticipation of resolving ambiguities. llvm-svn: 78461
-
Bob Wilson authored
so I generalized the class for VTRN in the .td file to handle all 3 of them. llvm-svn: 78460
-
Bob Wilson authored
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
-
Daniel Dunbar authored
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
-
Edward O'Callaghan authored
llvm-svn: 78457
-
Evan Cheng authored
llvm-svn: 78456
-
Evan Cheng authored
llvm-svn: 78455
-
Evan Cheng authored
llvm-svn: 78454
-
Evan Cheng authored
llvm-svn: 78453
-
Anders Carlsson authored
llvm-svn: 78452
-
Edward O'Callaghan authored
llvm-svn: 78451
-
Douglas Gregor authored
to allow sharing of nodes. Simplifies some aspects of template instantiation, and fixes both PR3444 and <rdar://problem/6757457>. llvm-svn: 78450
-
Chris Lattner authored
error condition get trapped with an assert. llvm-svn: 78449
-
Fariborz Jahanian authored
llvm-svn: 78448
-
Daniel Dunbar authored
llvm-svn: 78447
-
Andreas Bolka authored
llvm-svn: 78446
-
Fariborz Jahanian authored
non-trivial copy constructors. llvm-svn: 78445
-
Chris Lattner authored
llvm-svn: 78444
-
Anton Korobeynikov authored
llvm-svn: 78443
-
Chris Lattner authored
llvm-svn: 78441
-
Chris Lattner authored
is more tolerant of whitespace differences. llvm-svn: 78439
-
Bob Wilson authored
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
-
Fariborz Jahanian authored
copying non-virtual base classes which have non-trivial constructor. Work in progress. llvm-svn: 78436
-
Daniel Dunbar authored
This: -- #undef DEBUG_TYPE #define DEBUG_TYPE "foo" DEBUG(...) #undef DEBUG_TYPE #define DEBUG_TYPE "" -- becomes this: -- DEBUG_WITH_TYPE("foo", ...) -- llvm-svn: 78435
-
Anders Carlsson authored
llvm-svn: 78434
-
Bob Wilson authored
llvm-svn: 78433
-
Chris Lattner authored
llvm-svn: 78432
-
Benjamin Kramer authored
llvm-svn: 78431
-
David Goodwin authored
llvm-svn: 78430
-
Anders Carlsson authored
llvm-svn: 78429
-
Chris Lattner authored
llvm-svn: 78428
-
Chris Lattner authored
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
-
Andreas Bolka authored
llvm-svn: 78426
-
Anton Korobeynikov authored
llvm-svn: 78425
-
Argyrios Kyrtzidis authored
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
-
Kevin Enderby authored
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
-