summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* give the SourceMgr object a cookie.Chris Lattner2010-04-061-1/+2
| | | | llvm-svn: 100504
* Give llvm::SourceMgr the ability to have a client-specifiedChris Lattner2010-04-062-2/+9
| | | | | | diagnostic handler. llvm-svn: 100503
* Properly enable load clustering.Jakob Stoklund Olesen2010-04-051-4/+0
| | | | | | | Operand 2 on a load instruction does not have to be a RegisterSDNode for this to work. llvm-svn: 100497
* Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation.Evan Cheng2010-04-051-4/+2
| | | | llvm-svn: 100494
* Give AsmParser an option to control whether it finalizesChris Lattner2010-04-052-3/+6
| | | | | | | | | | | | | | | | | | | | the stream. New demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax 000000000000000b movl %eax,(%rsp) 000000000000000e movl %eax,0x04(%rsp) 0000000000000012 addq $0x08,%rsp 0000000000000016 ret llvm-svn: 100492
* add .o file writing for inline asm in llc. Here's a sillyChris Lattner2010-04-051-3/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ LLVM ERROR: Error parsing inline asm Only problem seems to be that the parser finalizes OutStreamer at the end of the first inline asm, which isn't what we want. For example: $ cat asm.c int foo(int X) { __asm__ ("incl %0" : "+r" (X)); return X; } $ clang asm.c -S -o - -emit-llvm | llc ... subq $8, %rsp movl %edi, (%rsp) movl %edi, %eax ## InlineAsm Start incl %eax ## InlineAsm End movl %eax, (%rsp) movl %eax, 4(%rsp) addq $8, %rsp ret $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax $ don't stop at inc! llvm-svn: 100491
* Output floating point representations in DWARF format. This is done by outputingBill Wendling2010-04-051-0/+26
| | | | | | the FP encoding directly as a hex representation. llvm-svn: 100487
* stringref-ize the MemoryBuffer::get apis. This requiresChris Lattner2010-04-053-21/+16
| | | | | | a co-committed clang patch. llvm-svn: 100485
* Fix ADD32rr_alt instruction encoding bug. Patch by Marius Wachtler.Evan Cheng2010-04-051-1/+1
| | | | llvm-svn: 100480
* fix a really nasty bug that Evan was tracking in SCCP. When resolvingChris Lattner2010-04-051-29/+32
| | | | | | | | | | | | | | | | | | undefs in branches/switches, we have two cases: a branch on a literal undef or a branch on a symbolic value which is undef. If we have a literal undef, the code was correct: forcing it to a constant is the right thing to do. If we have a branch on a symbolic value that is undef, we should force the symbolic value to a constant, which then makes the successor block live. Forcing the condition of the branch to being a constant isn't safe if later paths become live and the value becomes overdefined. This is the case that 'forcedconstant' is designed to handle, so just use it. This fixes rdar://7765019 but there is no good testcase for this, the one I have is too insane to be useful in the future. llvm-svn: 100478
* some code cleanups, use SwitchInst::findCaseValue, reduce indentationChris Lattner2010-04-051-62/+63
| | | | llvm-svn: 100468
* Code clean up.Evan Cheng2010-04-052-20/+18
| | | | llvm-svn: 100467
* Remove FIXME.Eric Christopher2010-04-051-2/+1
| | | | llvm-svn: 100466
* Fix OProfileJITEventListener build for new DebugLoc.Jeffrey Yasskin2010-04-051-6/+7
| | | | llvm-svn: 100461
* Add a comment.Dan Gohman2010-04-051-0/+6
| | | | llvm-svn: 100459
* lowering a volatile llvm.memcpy to a libc memcpy is ok.Chris Lattner2010-04-051-1/+0
| | | | | | PR6779 llvm-svn: 100457
* Don't do code sinking on unreachable blocks. It's unprofitable and hazardous.Dan Gohman2010-04-051-0/+5
| | | | llvm-svn: 100455
* don't use emitlabel in the arm asm printer yet, the order Chris Lattner2010-04-051-2/+7
| | | | | | | isn't well specified. ARM really needs to have its instprinter finished at some point. llvm-svn: 100439
* Push const through the regex engine. Fixes some of the warnings in PR6616.Owen Anderson2010-04-052-44/+51
| | | | llvm-svn: 100438
* fix a couple problems I introduced handling symbolsChris Lattner2010-04-051-4/+10
| | | | | | with spaces in them. Sym->getName() != OS << *Sym llvm-svn: 100434
* Disambiguate else.Benjamin Kramer2010-04-051-1/+2
| | | | llvm-svn: 100423
* remove the now-redundant MMI pointer in SelectionDAG.Chris Lattner2010-04-053-50/+32
| | | | llvm-svn: 100419
* hopefully sate the clang self host build, which is apparently Chris Lattner2010-04-051-0/+1
| | | | | | | | | | | instantiating some folding set stuff that GCC isn't, requiring some types to not be incomplete. I don't know if clang is right or wrong, but unbreaking the bot is goodness. Here's the broken build: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/1813/steps/compile.llvm.stage2/logs/stdio llvm-svn: 100418
* remove some redundant MMI arguments.Chris Lattner2010-04-052-11/+8
| | | | llvm-svn: 100417
* unthread MMI from FastISelChris Lattner2010-04-055-49/+37
| | | | llvm-svn: 100416
* remove the MMI pointer from MachineFrameInfo.Chris Lattner2010-04-055-45/+28
| | | | llvm-svn: 100415
* enhance MachineFunction to have a MMI pointer.Chris Lattner2010-04-052-3/+4
| | | | llvm-svn: 100414
* simplify code.Chris Lattner2010-04-051-7/+4
| | | | llvm-svn: 100412
* privatize more stuff, eliminate vtables.Chris Lattner2010-04-052-28/+28
| | | | llvm-svn: 100410
* reprivatize now that DwarfWriter is gone.Chris Lattner2010-04-052-4/+2
| | | | llvm-svn: 100409
* prune #includes, MMI can never be nullChris Lattner2010-04-052-5/+9
| | | | llvm-svn: 100408
* prune #includes, realize the MMI can never be null.Chris Lattner2010-04-052-20/+34
| | | | llvm-svn: 100407
* finally blast DwarfWriter away.Chris Lattner2010-04-052-83/+0
| | | | llvm-svn: 100406
* change AsmPrinter to use DwarfDebug/DwarfException directlyChris Lattner2010-04-054-25/+33
| | | | | | instead of going through DwarfWriter. llvm-svn: 100405
* Get rid of traling whitespaces. No functionality change.Johnny Chen2010-04-051-1/+1
| | | | llvm-svn: 100404
* The disassembler impl. of MCDisassembler::getInstruction() was using the patternJohnny Chen2010-04-051-5/+23
| | | | | | | | | | | | | uint32_t insn; MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL) to read 4 bytes of memory contents into a 32-bit uint variable. This leaves the interpretation of byte order up to the host machine and causes PPC test cases of arm-tests, neon-tests, and thumb-tests to fail. Fixed to use a byte array for reading the memory contents and shift the bytes into place for the 32-bit uint variable in the ARM case and 16-bit halfword in the Thumb case. llvm-svn: 100403
* implement EmitFunctionEntryLabel to emit the .cc_top directive,Chris Lattner2010-04-051-61/+7
| | | | | | | allowing xcore to use the normal runOnMachineFunction implementation. llvm-svn: 100402
* trim some spurious references to DwarfWriter. SDIsel really doesn'tChris Lattner2010-04-053-6/+2
| | | | | | need it anymore, so don't addRequire it. llvm-svn: 100400
* prune some #includes.Chris Lattner2010-04-056-8/+0
| | | | llvm-svn: 100399
* eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfoChris Lattner2010-04-052-13/+3
| | | | llvm-svn: 100386
* fix a regression on 2009-08-17-DebugInfo.mChris Lattner2010-04-051-0/+2
| | | | llvm-svn: 100385
* Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field.Jakob Stoklund Olesen2010-04-0513-103/+45
| | | | | | | | | | | | | | | | | | | When a target instruction wants to set target-specific flags, it should simply set bits in the TSFlags bit vector defined in the Instruction TableGen class. This works well because TableGen resolves member references late: class I : Instruction { AddrMode AM = AddrModeNone; let TSFlags{3-0} = AM.Value; } let AM = AddrMode4 in def ADD : I; TSFlags gets the expected bits from AddrMode4 in this example. llvm-svn: 100384
* selection dag doesn't need DwarfWriter, remove some tendrils.Chris Lattner2010-04-053-15/+5
| | | | llvm-svn: 100382
* fastisel doesn't need DwarfWriter, remove some tendricles.Chris Lattner2010-04-058-28/+33
| | | | llvm-svn: 100381
* Temporarily remove to disable building of ARM disassembler.Evan Cheng2010-04-051-16/+0
| | | | llvm-svn: 100380
* Re-apply 100265 but instead disable building of ARM disassembly for now.Evan Cheng2010-04-053-89/+31
| | | | llvm-svn: 100379
* Reverting 100265 to try to get buildbots green again. Lots of self-hosting ↵Evan Cheng2010-04-052-29/+86
| | | | | | buildbots started complaining since this commit. Also xfail ARM disassembly tests. llvm-svn: 100378
* just have all targets create the DwarfWriter.Chris Lattner2010-04-055-30/+1
| | | | llvm-svn: 100377
* simplify various getAnalysisUsage implementations.Chris Lattner2010-04-056-18/+0
| | | | llvm-svn: 100376
* nuke DwarfPrinterChris Lattner2010-04-053-121/+0
| | | | llvm-svn: 100375
OpenPOWER on IntegriCloud