summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Temporarily revert this since it appears to have caused a buildEric Christopher2010-02-041-49/+23
| | | | | | failure. llvm-svn: 95294
* add support for the sparcv9-*-* target triple to turn onChris Lattner2010-02-048-29/+74
| | | | | | 64-bit sparc codegen. Patch by Nathan Keynes! llvm-svn: 95293
* From PR6228:Chris Lattner2010-02-041-1/+2
| | | | | | | | | | | | "Attached patch removes the extra NUL bytes from the output and changes test/Archive/MacOSX.toc from a binary to a text file (removes svn:mime-type=application/octet-stream and adds svn:eol-style=native). I can't figure out how to get SVN to include the new contents of the file in the patch so I'm attaching it separately." Patch by James Abbatiello! llvm-svn: 95292
* Rework constant expr and array handling for objectsize instcombining.Eric Christopher2010-02-041-23/+49
| | | | | | | | | | Fix bugs where we would compute out of bounds as in bounds, and where we couldn't know that the linker could override the size of an array. Add a few new testcases, change existing testcase to use a private global array instead of extern. llvm-svn: 95283
* It's too risky to eliminate sext / zext of call results for tail call ↵Evan Cheng2010-02-041-6/+4
| | | | | | optimization even if the caller / callee attributes completely match. The callee may have been bitcast'ed (or otherwise lied about what it's doing). llvm-svn: 95282
* Change the argument to getIntegerSCEV to be an int64_t, ratherDan Gohman2010-02-041-1/+1
| | | | | | | than int. This will make it more convenient for LSR, which does a lot of things with int64_t offsets. llvm-svn: 95281
* Indirect tail call has to go through a call preserved register since it's ↵Evan Cheng2010-02-041-15/+14
| | | | | | | | after callee register pops. X86 isel lowering is using EAX / R11 and it was somehow adding that to function live out. That prevented the real function return register from being added to the function live out list and bad things happen. This fixes 483.xalancbmk (with tail call opt). llvm-svn: 95280
* Use a tab instead of space after .type, for consistency.Dan Gohman2010-02-041-1/+1
| | | | llvm-svn: 95272
* Rewrite FP constant handling in DEBUG_VALUE yetDale Johannesen2010-02-041-5/+17
| | | | | | | again, so it more or less handles long double. Restore \n removed in latest MC frenzy. llvm-svn: 95271
* Fix (and test) function-local metadata that occurs before the instruction ↵Victor Hernandez2010-02-041-4/+8
| | | | | | that it refers to; fix is to not enumerate operands of function-local metadata until after all instructions have been enumerated llvm-svn: 95269
* If we're dealing with a zero-length array, don't lower to anyEric Christopher2010-02-031-4/+9
| | | | | | particular size, we just don't know what the length is yet. llvm-svn: 95266
* enhance new encoder to support prefixes + RawFrm Chris Lattner2010-02-033-7/+133
| | | | | | | | instructions with no operands. It can now handle define void @test2() nounwind { ret void } llvm-svn: 95261
* set up some infrastructure, some minor cleanups.Chris Lattner2010-02-031-5/+39
| | | | llvm-svn: 95260
* Speculatively disable x86 automatic tail call optimization while we track ↵Evan Cheng2010-02-031-0/+3
| | | | | | down a self-hosting issue. llvm-svn: 95259
* stub out a new X86 encoder, which can be tried withChris Lattner2010-02-035-1/+56
| | | | | | -enable-new-x86-encoder until its stable. llvm-svn: 95256
* rename createX86MCCodeEmitter to more accurately reflect what it creates.Chris Lattner2010-02-033-5/+7
| | | | llvm-svn: 95254
* Added support for X86 instruction prefixes so llvm-mc can assemble them. TheKevin Enderby2010-02-032-6/+52
| | | | | | | | | | Lock prefix, Repeat string operation prefixes and the Segment override prefixes. Also added versions of the move string and store string instructions without the repeat prefixes to X86InstrInfo.td. And finally marked the rep versions of move/store string records in X86InstrInfo.td as isCodeGenOnly = 1 so tblgen is happy building the disassembler files. llvm-svn: 95252
* Emit appropriate expression to find virtual base offset.Devang Patel2010-02-031-1/+20
| | | | llvm-svn: 95242
* Provide interface to identifiy artificial methods.Devang Patel2010-02-032-5/+11
| | | | llvm-svn: 95240
* r94686 changed all ModuleProvider parameters to Modules, which made theJeffrey Yasskin2010-02-031-4/+0
| | | | | | | | 1-argument ExecutionEngine::create(Module*) ambiguous with the signature that used to be ExecutionEngine::create(ModuleProvider*, defaulted_params). Fixed by removing the 1-argument create(). Fixes PR6221. llvm-svn: 95236
* llvm-mc: Add --show-inst option, for showing the MCInst inline with the assemblyDaniel Dunbar2010-02-031-19/+27
| | | | | | output. llvm-svn: 95227
* Adjust the heuristics used to decide when SROA is likely to be profitable.Bob Wilson2010-02-031-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SRThreshold value makes perfect sense for checking if an entire aggregate should be promoted to a scalar integer, but it is not so good for splitting an aggregate into its separate elements. A struct may contain a large embedded array along with some scalar fields that would benefit from being split apart by SROA. Even if the total aggregate size is large, it may still be good to perform SROA. Thus, the most important piece of this patch is simply moving the aggregate size comparison vs. SRThreshold so that it guards only the aggregate promotion. We have also been checking the number of elements to decide if an aggregate should be split up. The limit of "SRThreshold/4" seemed rather arbitrary, and I don't think it's very useful to derive this limit from SRThreshold anyway. I've collected some data showing that the current default limit of 32 (since SRThreshold defaults to 128) is a reasonable cutoff for struct types. One thing suggested by the data is that distinguishing between structs and arrays might be useful. There are (obviously) a lot more large arrays than large structs (as measured by the number of elements and not the total size -- a large array inside a struct still counts as a single element given the way we do SROA right now). Out of 8377 arrays where we successfully performed SROA while compiling a large set of benchmarks, only 16 of them had more than 8 elements. And, for those 16 arrays, it's not at all clear that SROA was actually beneficial. So, to offset the compile time cost of investigating more large structs for SROA, the patch lowers the limit on array elements to 8. This fixes Apple Radar 7563690. llvm-svn: 95224
* reapply r95206, this time actually delete the code I'm replacing in the ↵Chris Lattner2010-02-031-9/+23
| | | | | | third stub case. llvm-svn: 95209
* revert r95206, it is apparently causing bootstrap failure on i386-darwin9Chris Lattner2010-02-031-24/+7
| | | | llvm-svn: 95208
* print instruction encodings with the existing comment facilities,Chris Lattner2010-02-031-18/+17
| | | | | | | | | | | | | so that llvm-mc -show-encoding prints like this: hlt ## encoding: [0xf4] instead of like this: hlt # encoding: [0xf4] llvm-svn: 95207
* make the x86 backend emit darwin stubs through mcstreamerChris Lattner2010-02-031-7/+24
| | | | | | instead of textually. llvm-svn: 95206
* make MachineModuleInfoMachO hold non-const MCSymbol*'s insteadChris Lattner2010-02-036-25/+24
| | | | | | | of const ones. non-const ones aren't very useful, because you can't even, say, emit them. llvm-svn: 95205
* change addPassesToEmitFile to return true on failure instead of its input,Chris Lattner2010-02-031-10/+19
| | | | | | | add -filetype=null for performance testing and remove -filetype=dynlib, which isn't planned to be implemented. llvm-svn: 95202
* Revert 94937 and move the noreturn check to codegen.Evan Cheng2010-02-032-7/+11
| | | | llvm-svn: 95198
* Make APInt::countLeadingZerosSlowCase() treat the contents of padding bitsJohn McCall2010-02-031-6/+18
| | | | | | as undefined. Fixes an assertion in APFloat::toString noticed by Dale. llvm-svn: 95196
* Allow all types of callee's to be tail called. But avoid automatic tailcall ↵Evan Cheng2010-02-032-21/+10
| | | | | | if the callee is a result of bitcast to avoid losing necessary zext / sext etc. llvm-svn: 95195
* 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-031-8/+6
| | | | llvm-svn: 95186
* rename printMachineInstruction -> EmitInstructionChris Lattner2010-02-032-8/+3
| | | | llvm-svn: 95184
* Reapply 95050 with a tweak to check the register class.Dale Johannesen2010-02-031-0/+16
| | | | llvm-svn: 95183
* 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-038-53/+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
* 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
* pass an instprinter into the AsmPrinter if it is available.Chris Lattner2010-02-031-3/+7
| | | | llvm-svn: 95168
* 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-032-70/+100
| | | | llvm-svn: 95165
* 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-021-6/+13
| | | | | | | | | | | | | $ 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-0225-30/+34
| | | | llvm-svn: 95160
* Accept floating point immediates in DEBUG_VALUE.Dale Johannesen2010-02-021-1/+11
| | | | llvm-svn: 95159
OpenPOWER on IntegriCloud