| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 107612
|
| |
|
|
|
|
| |
unimplemented. A VLA region's sizeof value matches its extent.
llvm-svn: 107611
|
| |
|
|
| |
llvm-svn: 107610
|
| |
|
|
|
|
| |
v2f32 is illegal on x86.
llvm-svn: 107609
|
| |
|
|
| |
llvm-svn: 107608
|
| |
|
|
| |
llvm-svn: 107607
|
| |
|
|
|
|
|
| |
class is available in the same translation unit when it's needed. So we make
all of them invalid Entity.
llvm-svn: 107606
|
| |
|
|
| |
llvm-svn: 107605
|
| |
|
|
| |
llvm-svn: 107604
|
| |
|
|
| |
llvm-svn: 107603
|
| |
|
|
| |
llvm-svn: 107602
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the example in the testcase, we now generate:
_test1: ## @test1
movss 4(%esp), %xmm0
addss 8(%esp), %xmm0
movl 12(%esp), %eax
movss %xmm0, (%eax)
ret
instead of:
_test1: ## @test1
subl $20, %esp
movl 24(%esp), %eax
movq %mm0, (%esp)
movq %mm0, 8(%esp)
movss (%esp), %xmm0
addss 12(%esp), %xmm0
movss %xmm0, (%eax)
addl $20, %esp
ret
v2f32 support did not work reliably because most of the X86
backend didn't know it was legal. It was apparently only added
to support returning source-level v2f32 values in MMX registers
in x86-32 mode. If ABI compatibility is important on this
GCC-extended-vector type for some reason, then the frontend
should generate IR that returns v2i32 instead of v2f32. However,
we generally don't try very hard to be abi compatible on gcc
extended vectors.
llvm-svn: 107601
|
| |
|
|
|
|
|
|
| |
v2f32 as legal in 32-bit mode. It is just as terrible there,
but I just care about x86-64 and noone claims it is valuable
in 64-bit mode.
llvm-svn: 107600
|
| |
|
|
| |
llvm-svn: 107599
|
| |
|
|
|
|
|
| |
Some of the invariant checks for creating Record/Enum types don't hold true during PCH reading.
Introduce more suitable ASTContext::getRecordType() and getEnumType().
llvm-svn: 107598
|
| |
|
|
|
|
| |
instantiated-from information.
llvm-svn: 107597
|
| |
|
|
|
|
|
|
|
|
| |
Before this commit, visible decls added before deserialization were ignored.
This was not an issue since name lookup (that usually comes before the addition) forces deserialization
but it is an issue for lazily declared class implicit members.
We can use a PCH'ed <string> now.
llvm-svn: 107596
|
| |
|
|
|
|
|
|
|
|
| |
by PCHReader.
Currently, adding it to visible decls of a PCH'ed translation unit has no effect because
adding visible decls before deserialization has no effect (the decls won't be visible).
This will be fixed in a future commit; then it will force deserialization of visible decls, so avoid pointlessly installing it.
llvm-svn: 107595
|
| |
|
|
| |
llvm-svn: 107594
|
| |
|
|
| |
llvm-svn: 107593
|
| |
|
|
|
|
|
|
|
|
| |
contain all the same information that their Types do, we will fall back to
traversing the Types instead. The default TypeLoc visitor calls the matching
Type visitor so that existing clients should continue to work with no change.
Also adds element traversal to the ExtVectorType.
llvm-svn: 107592
|
| |
|
|
|
|
| |
ensures remat'ed loads from fixed slots have the right alignments.
llvm-svn: 107591
|
| |
|
|
| |
llvm-svn: 107589
|
| |
|
|
| |
llvm-svn: 107588
|
| |
|
|
| |
llvm-svn: 107587
|
| |
|
|
|
|
| |
couple utility functions from the multiplications into the utility header
llvm-svn: 107586
|
| |
|
|
| |
llvm-svn: 107585
|
| |
|
|
|
|
|
| |
(SDNPMemOperand). This way when they're morphed the memory operands will be
copied as well.
llvm-svn: 107583
|
| |
|
|
| |
llvm-svn: 107582
|
| |
|
|
| |
llvm-svn: 107581
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in a few minutes]
second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private
If you get compile errors I strongly urge you to
update your code.
I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.
You have several options to update your code:
- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
low-level accessors if your code is definitely
operand-order agnostic.
If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):
<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>
llvm-svn: 107580
|
| |
|
|
| |
llvm-svn: 107579
|
| |
|
|
|
|
|
|
| |
Type hierarchy. Without this, TypeLocNodes.def will give you wrong type
hierarchy information (claiming that ObjCObjectTypeLoc is the base of
ObjCInterfaceTypeLoc, which it wasn't).
llvm-svn: 107578
|
| |
|
|
|
|
|
|
|
|
| |
regions that may not be known at compile-time (such as those created by malloc). This replaces the old setExtent/getExtent API on Store, which used the GRState's GDM to store SVals.
Also adds a getKnownValue() method to SValuator, which gets the integer value of an SVal if it is known to only have one possible value. There are more places in the code that could be using this, but in general we want to be dealing entirely in SVals, so its usefulness is limited.
The only visible functionality change is that extents are now honored for any DeclRegion, such as fields and Objective-C ivars, rather than just variables. This shows up in bounds-checking and cast-size-checking.
llvm-svn: 107577
|
| |
|
|
| |
llvm-svn: 107576
|
| |
|
|
|
|
|
|
| |
lldbtest.TestBase.
Also removed some debug prints.
llvm-svn: 107575
|
| |
|
|
| |
llvm-svn: 107574
|
| |
|
|
| |
llvm-svn: 107573
|
| |
|
|
|
|
|
|
|
|
| |
ObjC pointers were easy enough (as far as the ABI is concerned, they're
just pointers to structs), but I had to invent a new mangling for block
pointers. This is particularly worrying with the Microsoft ABI, because
it is a vendor-specific ABI; extending it could come back to bite us
later when MS extends it on their own (and you know they will).
llvm-svn: 107572
|
| |
|
|
|
|
| |
point.
llvm-svn: 107570
|
| |
|
|
| |
llvm-svn: 107569
|
| |
|
|
| |
llvm-svn: 107568
|
| |
|
|
| |
llvm-svn: 107567
|
| |
|
|
|
|
|
|
| |
initializing so avoid
the invariant checks at NamespaceDecl::setAnonymousNamespace().
llvm-svn: 107566
|
| |
|
|
| |
llvm-svn: 107565
|
| |
|
|
| |
llvm-svn: 107564
|
| |
|
|
|
|
|
|
|
|
|
| |
module lldbtest.py and refactored the existing test cases to derive from the
abstract base class lldbtest.TestBase.
MOdified the test driver (dotest.py and dotest.pl) to set up additional
PYTHONPATH component for locating the lldbtest module, which sits in the same
directory.
llvm-svn: 107563
|
| |
|
|
|
|
|
|
|
| |
extension if you otherwise configure scan-build
to do c++ static analysis.
OKed by Ted
llvm-svn: 107562
|
| |
|
|
|
|
|
|
|
|
|
| |
Only actual functions get mangled correctly; I don't know how to fix it for
function pointers yet. Thanks to John McCall for the hint.
Also, mangle anonymous tag types. I don't have a suitable testcase yet; I have
a feeling that that's going to need support for static locals, and I haven't
figured out exactly how MSVC's scheme for mangling those works.
llvm-svn: 107561
|
| |
|
|
| |
llvm-svn: 107560
|