- Feb 03, 2010
-
-
Sam Weinig authored
llvm-svn: 95190
-
David Chisnall authored
- Don't use GlobalAliases with non-0 GEPs (GNU runtime) - this was unsupported and LLVM will be generating errors if you do it soon. This also simplifies the code generated by the GNU runtime a bit. - Make GetSelector() return a constant (GNU runtime), not a load of a store of a constant. - Recognise @selector() expressions as valid static initialisers (as GCC does). - Add methods to GCObjCRuntime to emit selectors as constants (needed for using @selector() expressions as constants. These need implementing for the Mac runtimes - I couldn't figure out how to do this, they seem to require a load. - Store an ObjCMethodDecl in an ObjCSelectorExpr so that we can get at the type information for the selector. This is needed for generating typed selectors from @selector() expressions (as GCC does). Ideally, this information should be stored in the Selector, but that would be an invasive change. We should eventually add checks for common uses of @selector() expressions. Possibly adding an attribute that can be applied to method args providing the types of a selector so, for example, you'd do something like this: - (id)performSelector: __attribute__((selector_types(id, SEL, id)))(SEL) withObject: (id)object; Then, any @selector() expressions passed to the method will be check to ensure that it conforms to this signature. We do this at run time on the GNU runtime already, but it would be nice to do it at compile time on all runtimes. - Made @selector() expressions emit type info if available and the runtime supports it. Someone more familiar with the Mac runtime needs to implement the GetConstantSelector() function in CGObjCMac. This currently just assert()s. llvm-svn: 95189
-
Sebastian Redl authored
llvm-svn: 95188
-
Chris Lattner authored
.o files don't like that. llvm-svn: 95187
-
Chris Lattner authored
llvm-svn: 95186
-
Chris Lattner authored
llvm-svn: 95185
-
Chris Lattner authored
llvm-svn: 95184
-
Dale Johannesen authored
llvm-svn: 95183
-
Daniel Dunbar authored
llvm-svn: 95182
-
Chris Lattner authored
llvm-svn: 95181
-
Chris Lattner authored
llvm-svn: 95180
-
Chris Lattner authored
the streamer. Demo: $ cat t.ll define i32 @test() nounwind { ret i32 42 } $ llc t.ll -o - ... _test: movl $42, %eax ret $ llc t.ll -o t.o -filetype=obj $ otool -tv t.o t.o: (__TEXT,__text) section _test: 00000000 movl $0x0000002a,%eax 00000005 ret llvm-svn: 95179
-
Chris Lattner authored
the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. llvm-svn: 95178
-
Chris Lattner authored
than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. llvm-svn: 95177
-
John McCall authored
appropriately. Call out a few missing cases in the expression mangler. llvm-svn: 95176
-
Chris Lattner authored
llvm-svn: 95175
-
Dale Johannesen authored
to have some problems anyway. llvm-svn: 95171
-
Bob Wilson authored
llvm-svn: 95170
-
Fariborz Jahanian authored
(per Doug's comment). llvm-svn: 95169
-
Chris Lattner authored
llvm-svn: 95168
-
Douglas Gregor authored
lvalue-to-rvalue conversion adjusts lvalues of qualified, non-class type to rvalue expressions of the unqualified variant of that type. For example, given: const int i; (void)(i + 17); the lvalue-to-rvalue conversion for the subexpression "i" will turn it from an lvalue expression (a DeclRefExpr) with type 'const int' into an rvalue expression with type 'int'. Both C and C++ mandate this conversion, and somehow we've slid through without implementing it. We now have both DefaultFunctionArrayConversion and DefaultFunctionArrayLvalueConversion, and which gets used depends on whether we do the lvalue-to-rvalue conversion or not. Generally, we do the lvalue-to-rvalue conversion, but there are a few notable exceptions: - the left-hand side of a '.' operator - the left-hand side of an assignment - a C++ throw expression - a subscript expression that's subscripting a vector Making this change exposed two issues with blocks: - we were deducing const-qualified return types of non-class type from a block return, which doesn't fit well - we weren't always setting the known return type of a block when it was provided with the ^return-type syntax Fixes the current Clang-on-Clang compile failure and PR6076. llvm-svn: 95167
-
Chris Lattner authored
stderr if in filetype=obj mode. This is a hack, and will live until dwarf emission and other random stuff that is not yet going through MCStreamer is upgraded. It only impacts filetype=obj mode. llvm-svn: 95166
-
Eric Christopher authored
llvm-svn: 95165
-
Fariborz Jahanian authored
declaration. Fixes radar 7590273. llvm-svn: 95164
-
Evan Cheng authored
ByVal frame object size should be that of the byval argument, not the size of the type which is just a pointer. This is not known to break stuff but is wrong nevertheless. llvm-svn: 95163
-
Chris Lattner authored
$ cat t.ll @g = global i32 42 $ llc t.ll -o t.o -filetype=obj $ nm t.o 00000000 D _g There is still a ton of work left. Instructions are not being encoded yet apparently. llvm-svn: 95162
-
Jim Grosbach authored
even when -disable-fp-elim is specified. llvm-svn: 95161
-
Evan Cheng authored
llvm-svn: 95160
-
Dale Johannesen authored
llvm-svn: 95159
-
Daniel Dunbar authored
some mechanism for specifying alternative syntaxes, but I'm not sure what form that should take yet. llvm-svn: 95158
-
Daniel Dunbar authored
is still deterministic even amongst ambiguous instructions (eventually ambiguous match orders will be a hard error, but we aren't there yet). llvm-svn: 95157
-
Chris Lattner authored
llvm-svn: 95156
-
Chris Lattner authored
mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. llvm-svn: 95155
-
Eric Christopher authored
llvm-svn: 95154
-
- Feb 02, 2010
-
-
Chris Lattner authored
llvm-svn: 95153
-
Chris Lattner authored
move handling of asm-verbose out of AsmPrinter.cpp into LLVMTargetMachine.cpp with the rest of the command line options. llvm-svn: 95152
-
Ted Kremenek authored
Remove RegionStoreSubRegionMap::iterator and RegionStoreSubRegionMap::begin_end(). This is a precursor to using DenseSet to represent region sets instead of ImmutableSet. llvm-svn: 95151
-
Chris Lattner authored
llvm-svn: 95150
-
Chris Lattner authored
It's unclear if the matcher is nondeterminstic of what here, but I'm getting matches without TAILCALL and some other hosts are getting matches with it. llvm-svn: 95149
-
Chris Lattner authored
Now the only use of the ELF writer is the JIT, which won't be easy to fix in the short term. :( :( llvm-svn: 95148
-