summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Provide a real fix for PR6199, reverting the old workaround. Here, weDouglas Gregor2010-02-032-3/+7
| | | | | | | | realize that CXXConstructExpr is always implicit, so we should just return its argument (if there is only one) rather than directly invoking the constructor. llvm-svn: 95192
* Reconfigure with autoconf-2.60, and fix autoconf.ac to work with that version.Jeffrey Yasskin2010-02-033-4400/+11585
| | | | llvm-svn: 95191
* Remove the SmallVector from CXXTryStmt.Sam Weinig2010-02-033-20/+33
| | | | llvm-svn: 95190
* Numerous changes to selector handling:David Chisnall2010-02-038-29/+84
| | | | | | | | | | | | | | | | | | | | | | | - 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
* Don't do an expensive definition check where a cheap 'is this C?' check ↵Sebastian Redl2010-02-031-1/+2
| | | | | | suffices. llvm-svn: 95188
* don't emit \n's at the start of X86AsmPrinter::runOnMachineFunction,Chris Lattner2010-02-032-1/+2
| | | | | | .o files don't like that. llvm-svn: 95187
* privatize a bunch of methods and move \n printing into them.Chris Lattner2010-02-032-13/+13
| | | | llvm-svn: 95186
* fix PR6216Chris Lattner2010-02-032-0/+6
| | | | llvm-svn: 95185
* rename printMachineInstruction -> EmitInstructionChris Lattner2010-02-032-8/+3
| | | | llvm-svn: 95184
* Reapply 95050 with a tweak to check the register class.Dale Johannesen2010-02-033-2/+20
| | | | llvm-svn: 95183
* clang -cc1: Wire up -emit-obj, for emitting object files.Daniel Dunbar2010-02-038-11/+28
| | | | llvm-svn: 95182
* print instructions through the mcstreamer.Chris Lattner2010-02-031-13/+6
| | | | llvm-svn: 95181
* emit instructions through the streamer.Chris Lattner2010-02-031-2/+1
| | | | llvm-svn: 95180
* Finally eliminate printMCInst and send instructions throughChris Lattner2010-02-033-17/+4
| | | | | | | | | | | | | | | | | | | | | | | 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
* rejigger the world so that EmitInstruction prints the \n atChris Lattner2010-02-0312-22/+37
| | | | | | | | 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
* sink handling of target-independent machine instrs (otherChris Lattner2010-02-039-71/+19
| | | | | | | | 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
* Remove abstract expression kinds from the StmtClass enum. Update a few usersJohn McCall2010-02-0311-37/+39
| | | | | | appropriately. Call out a few missing cases in the expression mangler. llvm-svn: 95176
* make these less sensitive to asm verbose changes by disabling it for them.Chris Lattner2010-02-032-2/+2
| | | | llvm-svn: 95175
* Print FPImm a less kludgy way; APFloat.toString seemsDale Johannesen2010-02-031-6/+3
| | | | | | to have some problems anyway. llvm-svn: 95171
* Fix some comment typos.Bob Wilson2010-02-031-3/+3
| | | | llvm-svn: 95170
* Simplify setting of DeclContext for @catch variableFariborz Jahanian2010-02-032-9/+2
| | | | | | (per Doug's comment). llvm-svn: 95169
* pass an instprinter into the AsmPrinter if it is available.Chris Lattner2010-02-031-3/+7
| | | | llvm-svn: 95168
* Implement the lvalue-to-rvalue conversion where needed. TheDouglas Gregor2010-02-0311-29/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* make any use of the "O" stream in asmprinter print toChris Lattner2010-02-031-1/+10
| | | | | | | | | 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
* Recommit this, looks like it wasn't the cause.Eric Christopher2010-02-034-70/+142
| | | | llvm-svn: 95165
* Fix DeclContext of an objective-c @catch variableFariborz Jahanian2010-02-035-0/+38
| | | | | | declaration. Fixes radar 7590273. llvm-svn: 95164
* ByVal frame object size should be that of the byval argument, not the size ↵Evan Cheng2010-02-021-7/+11
| | | | | | of the type which is just a pointer. This is not known to break stuff but is wrong nevertheless. llvm-svn: 95163
* Hook up -filetype=obj through the MachO streamer. Here's a demo:Chris Lattner2010-02-023-7/+15
| | | | | | | | | | | | | $ 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
* As of r79039, we still try to eliminate the frame pointer on leaf functions,Jim Grosbach2010-02-021-1/+1
| | | | | | even when -disable-fp-elim is specified. llvm-svn: 95161
* Revert 95130.Evan Cheng2010-02-0226-31/+35
| | | | llvm-svn: 95160
* Accept floating point immediates in DEBUG_VALUE.Dale Johannesen2010-02-021-1/+11
| | | | llvm-svn: 95159
* AsmParser/X86: Add temporary hack to allow parsing "sal". Eventually we needDaniel Dunbar2010-02-022-2/+14
| | | | | | | some mechanism for specifying alternative syntaxes, but I'm not sure what form that should take yet. llvm-svn: 95158
* AsmMatcherEmitter: Use stable_sort when reordering instructions, so that orderDaniel Dunbar2010-02-021-3/+5
| | | | | | | 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
* use OwningPtr and factor code better.Chris Lattner2010-02-021-19/+21
| | | | llvm-svn: 95156
* refactor code so that LLVMTargetMachine creates the asmstreamer and Chris Lattner2010-02-0219-56/+97
| | | | | | | mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. llvm-svn: 95155
* Hopefully temporarily revert this.Eric Christopher2010-02-024-142/+70
| | | | llvm-svn: 95154
* simplify getVerboseAsmChris Lattner2010-02-021-6/+6
| | | | llvm-svn: 95153
* move handling of asm-verbose out of AsmPrinter.cpp into ↵Chris Lattner2010-02-022-17/+16
| | | | | | LLVMTargetMachine.cpp with the rest of the command line options. llvm-svn: 95152
* Remove RegionStoreSubRegionMap::iterator and ↵Ted Kremenek2010-02-021-26/+28
| | | | | | RegionStoreSubRegionMap::begin_end(). This is a precursor to using DenseSet to represent region sets instead of ImmutableSet. llvm-svn: 95151
* remove dead #include, stupid symlinks.Chris Lattner2010-02-021-1/+0
| | | | llvm-svn: 95150
* remove the # TAILCALL markers, which was causing the to fail.Chris Lattner2010-02-021-16/+15
| | | | | | | | 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
* Remove a bunch of stuff around the edges of the ELF writer.Chris Lattner2010-02-026-46/+3
| | | | | | | 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
* Reformat my last patch slightly.Eric Christopher2010-02-021-4/+4
| | | | llvm-svn: 95147
* tidy some targets.Chris Lattner2010-02-023-6/+0
| | | | llvm-svn: 95146
* Re-add strcmp and known size object size checking optimization.Eric Christopher2010-02-024-12/+83
| | | | | | Passed bootstrap and nightly test run here. llvm-svn: 95145
* remove dead code.Chris Lattner2010-02-024-43/+0
| | | | llvm-svn: 95144
* MCAssembler/Darwin: Add a test (on Darwin) that we assemble a bunch ofDaniel Dunbar2010-02-023-0/+558
| | | | | | instructions exactly like 'as', and produce equivalent .o files. llvm-svn: 95143
* detemplatize the ppc code emitter.Chris Lattner2010-02-021-37/+21
| | | | llvm-svn: 95142
* remove dead code.Chris Lattner2010-02-024-73/+0
| | | | llvm-svn: 95141
* add a definition for ID.Chris Lattner2010-02-021-0/+3
| | | | llvm-svn: 95140
OpenPOWER on IntegriCloud