| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
say the least. Since the register operand guaranteed to be PIC base and that it is already live at all uses, we are making sure it will not be spilled after its uses are rematerialized for both performance and correctness reasons.
llvm-svn: 48976
|
| |
|
|
|
|
|
|
|
|
| |
realazthat in #llvm was having problems building llvm
because configure was finding an ocaml executable in
a directory with a space in it's name. This patch
puts quotes around the name so that llvm can build for
him.
llvm-svn: 48974
|
| |
|
|
|
|
| |
pointing this out.
llvm-svn: 48973
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix objc ivar lookup. Ivar lookup should occur between lookup
of method-local values and lookup of globals. Emulate this with
some logic in the handling of Sema::ActOnIdentifierExpr.
Two todo's left:
1) sema shouldn't turn a bare reference to an ivar into "self->ivar"
in the AST. This is a hack.
2) The new ScopedDecl::isDefinedOutsideFunctionOrMethod method does
not correctly handle typedefs and enum constants yet.
llvm-svn: 48972
|
| |
|
|
| |
llvm-svn: 48971
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
remaining open issues I've communicated to him:
1) self can be assigned to, and his patch didn't handle it correctly.
2) CollectObjCIvarTypes is N^2 (because each subclass reprocesses
all parent class ivars) and flattens classes. If A derives from B,
and both have an int, I'd expect to get { {i32}, i32}, not { i32, i32}.
David, please review.
llvm-svn: 48970
|
| |
|
|
|
|
| |
etoile runtime, patch by David Chisnall!
llvm-svn: 48969
|
| |
|
|
|
|
| |
docs.
llvm-svn: 48968
|
| |
|
|
| |
llvm-svn: 48967
|
| |
|
|
| |
llvm-svn: 48966
|
| |
|
|
| |
llvm-svn: 48965
|
| |
|
|
| |
llvm-svn: 48964
|
| |
|
|
|
|
| |
patch by David Chisnall.
llvm-svn: 48963
|
| |
|
|
| |
llvm-svn: 48961
|
| |
|
|
| |
llvm-svn: 48954
|
| |
|
|
| |
llvm-svn: 48949
|
| |
|
|
| |
llvm-svn: 48947
|
| |
|
|
| |
llvm-svn: 48942
|
| |
|
|
| |
llvm-svn: 48941
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when something changes, instead of moving forward. This allows us to
simplify memset lowering, inserting the memset at the end of the range of
stuff we're touching instead of at the start.
This, in turn, allows us to make use of the addressing instructions already
used in the function instead of inserting our own. For example, we now
codegen:
%tmp41 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 0 ; <i8*> [#uses=2]
call void @llvm.memset.i64( i8* %tmp41, i8 -1, i64 8, i32 1 )
instead of:
%tmp20 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 7 ; <i8*> [#uses=1]
%ptroffset = getelementptr i8* %tmp20, i64 -7 ; <i8*> [#uses=1]
call void @llvm.memset.i64( i8* %ptroffset, i8 -1, i64 8, i32 1 )
llvm-svn: 48940
|
| |
|
|
|
|
| |
into a memset!) faster by avoiding an allocation of an std::list node.
llvm-svn: 48939
|
| |
|
|
| |
llvm-svn: 48938
|
| |
|
|
| |
llvm-svn: 48937
|
| |
|
|
|
|
|
|
| |
elimination algorithm where we were accidentally reasoning about
the source rather than the destination.
llvm-svn: 48936
|
| |
|
|
| |
llvm-svn: 48935
|
| |
|
|
|
|
| |
load value. This fixes PR2177.
llvm-svn: 48932
|
| |
|
|
| |
llvm-svn: 48926
|
| |
|
|
| |
llvm-svn: 48924
|
| |
|
|
| |
llvm-svn: 48922
|
| |
|
|
|
|
|
|
| |
nil). This won't be useful in most cases right now
because the analyzer isn't tracking expected types for an object, and [NSString alloc] just runs "id".
llvm-svn: 48917
|
| |
|
|
| |
llvm-svn: 48916
|
| |
|
|
| |
llvm-svn: 48914
|
| |
|
|
| |
llvm-svn: 48912
|
| |
|
|
| |
llvm-svn: 48911
|
| |
|
|
| |
llvm-svn: 48910
|
| |
|
|
|
|
|
|
|
|
| |
memsets that initialize "structs of arrays" and other store sequences
that are not sequential. This is still only enabled if you pass
-form-memset-from-stores. The flag is not heavily tested and I haven't
analyzed the perf regressions when -form-memset-from-stores is passed
either, but this causes no make check regressions.
llvm-svn: 48909
|
| |
|
|
| |
llvm-svn: 48908
|
| |
|
|
| |
llvm-svn: 48907
|
| |
|
|
|
|
| |
Fix a couple bozo bugs in the rewriter.
llvm-svn: 48903
|
| |
|
|
| |
llvm-svn: 48899
|
| |
|
|
| |
llvm-svn: 48898
|
| |
|
|
|
|
| |
Added test case to test warning about passing 'nil' to NSString's compare: method.
llvm-svn: 48896
|
| |
|
|
| |
llvm-svn: 48895
|
| |
|
|
|
|
|
|
| |
In order to handle indexed nodes I had to introduce
a new constructor, and since I was there I factorized
the code in the various load constructors.
llvm-svn: 48894
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nodes. This doesn't currently have much impact the generated code, but it
does produce simpler-looking SelectionDAGs, and consequently
simpler-looking ScheduleDAGs, because there are fewer spurious
dependencies.
In particular, CopyValueToVirtualRegister now uses the entry node as the
input chain dependency for new CopyToReg nodes instead of calling getRoot
and depending on the most recent memory reference.
Also, rename UnorderedChains to PendingExports and pull it up from being
a local variable in SelectionDAGISel::BuildSelectionDAG to being a
member variable of SelectionDAGISel, so that it doesn't have to be
passed around to all the places that need it.
llvm-svn: 48893
|
| |
|
|
| |
llvm-svn: 48891
|
| |
|
|
|
|
| |
Increment iterator in advance.
llvm-svn: 48890
|
| |
|
|
|
|
| |
Bug fix in EscapeText (for std::string) where spaces were not properly emitted.
llvm-svn: 48889
|
| |
|
|
|
|
| |
current working directory for "."
llvm-svn: 48888
|
| |
|
|
| |
llvm-svn: 48887
|