summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert 100573, it's causing some testsuite problems.Dale Johannesen2010-04-062-60/+71
| | | | llvm-svn: 100578
* Move printing of DEBUG_VALUE comments to target-independent place.Dale Johannesen2010-04-062-71/+60
| | | | | | There is probably a more elegant way to do this. llvm-svn: 100573
* Expand SELECT and SELECT_CC for NEON vector types.Bob Wilson2010-04-061-0/+2
| | | | | | Radar 7770501. llvm-svn: 100568
* Allow for the possibility that a debug-value pointsDale Johannesen2010-04-061-2/+13
| | | | | | to a SDNode that didn't have code generated for it. llvm-svn: 100566
* Reverting 100530 & 100531 due to regressions in the GDB test suite.Stuart Hastings2010-04-062-25/+8
| | | | llvm-svn: 100563
* Fix PR6696 and PR6663Jim Grosbach2010-04-065-14/+84
| | | | | | | | | | | | | | | | | When a frame pointer is not otherwise required, and dynamic stack alignment is necessary solely due to the spilling of a register with larger alignment requirements than the default stack alignment, the frame pointer can be both used as a general purpose register and a frame pointer. That goes poorly, for obvious reasons. This patch brings back a bit of old logic for identifying the use of such registers and conservatively reserves the frame pointer during register allocation in such cases. For now, implement for X86 only since it's 32-bit linux which is hitting this, and we want a targeted fix for 2.7. As a follow-on, this will be expanded to handle other targets, as theoretically the problem could arise elsewhere as well. llvm-svn: 100559
* Don't try to collapse DomainValues onto an incompatible SSE domain.Jakob Stoklund Olesen2010-04-061-4/+12
| | | | | | This fixes the Bullet regression on i386/nocona. llvm-svn: 100553
* performance: get rid of repeated dereferencing of use_iterator by caching ↵Gabor Greif2010-04-061-5/+7
| | | | | | its result llvm-svn: 100550
* make more two predicates constantGabor Greif2010-04-061-15/+15
| | | | llvm-svn: 100549
* performance: get rid of repeated dereferencing of use_iterator by caching ↵Gabor Greif2010-04-061-21/+28
| | | | | | its result llvm-svn: 100547
* const-ize predicate ValueIsOnlyUsedLocallyOrStoredToOneGlobalGabor Greif2010-04-061-9/+10
| | | | llvm-svn: 100546
* use CallSite to access calls vs. invokes uniformlyGabor Greif2010-04-061-5/+6
| | | | | | and remove assumptions about operand order llvm-svn: 100544
* enhance SMDiagnostic to also maintain a pointer to the SourceMgr.Chris Lattner2010-04-062-3/+3
| | | | | | | Add a simplified constructor for clients that don't have locations like "file not found" errors. llvm-svn: 100538
* Code clean up. Move includes from VirtRegRewriter.h to VirtRegRewriter.cpp.Evan Cheng2010-04-062-4/+5
| | | | llvm-svn: 100532
* Revise debug info machinery to digest nested functions and classes.Stuart Hastings2010-04-062-8/+25
| | | | | | | | | | | A certain GDB testsuite case (local.cc) has a function nested inside a class nested inside another function. GCC presents the innermost function to llvm-convert first. Heretofore, the debug info mistakenly placed the inner function at module scope. This patch walks the GCC context links and instantiates the outer class and function so the debug info is properly nested. Radar 7426545. llvm-svn: 100530
* Remove assert to treat memmove and memset like memcpyMon P Wang2010-04-061-3/+4
| | | | llvm-svn: 100521
* Use a ManagedCleanup to prevent leaking the PassRegistrar map. In breaks theOwen Anderson2010-04-061-6/+14
| | | | | | | use case where someone wants to resurrect LLVM after calling llvm_shutdown, but I'm not aware of any clients that are affected by this. llvm-svn: 100519
* Add a const qualifier.Dan Gohman2010-04-061-1/+1
| | | | llvm-svn: 100515
* propagate cookie management out one layer of function calls.Chris Lattner2010-04-062-5/+4
| | | | llvm-svn: 100510
* report errors through LLVMContext's inline asm handler if available.Chris Lattner2010-04-061-1/+15
| | | | llvm-svn: 100509
* Give MachineModuleInfo an actual Module*.Chris Lattner2010-04-062-5/+14
| | | | llvm-svn: 100508
* give LLVMContext an inline asm diagnostic hook member.Chris Lattner2010-04-063-2/+22
| | | | llvm-svn: 100506
* Remove unnecessary include.Devang Patel2010-04-061-1/+0
| | | | llvm-svn: 100505
* 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
OpenPOWER on IntegriCloud