aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-02-01Remove the nasty LABEL hack with a much less evil one. Now ↵Evan Cheng
llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46635 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-01Rename RecordLabel to RecordSourceLine because that's what it is doing.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46628 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and ↵Evan Cheng
re-commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Chris' change to print an approximation to long doublesDale Johannesen
exposed a bug in APFloat's long double->double conversion of NaNs. Broke several things in the ieee part of gcc testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46617 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Add a comment for a nasty short term hack.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46610 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Add an extra operand to LABEL nodes which distinguishes between debug, EH, ↵Evan Cheng
or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Allow ComplexExpressions in InstrInfo.td files to be slightly more... ↵Christopher Lamb
complex! ComplexExpressions can now have attributes which affect how TableGen interprets the pattern when generating matchin code. The first (and currently, only) attribute causes the immediate parent node of the ComplexPattern operand to be passed into the matching code rather than the node at the root of the entire DAG containing the pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46606 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Add more thorough error checking for NULL register classes.Christopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46605 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Add x86 specific getFrameIndexOffset(). This fixes local variable debugging ↵Evan Cheng
info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46598 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31MRegisterInfo::getLocation() is a really bad idea. Its function is to ↵Evan Cheng
calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation. Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46597 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Makes the same change in ppc backend: avoid inserting prologue before debug ↵Evan Cheng
labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46596 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Avoid unnecessarily casting away const, fixing a FIXME.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46591 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Avoid unnecessarily casting away const.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46590 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Rename ISD::FLT_ROUNDS to ISD::FLT_ROUNDS_ to avoid conflictingDan Gohman
with the real FLT_ROUNDS (defined in <float.h>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46587 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Also avoid adding callee save code before debug labels.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46586 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-31Create a new class, MemOperand, for describing memory referencesDan Gohman
in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Fixed a bug in MergeValueInAsValue() pointed out by David Greene. Replace ↵Evan Cheng
val# with previous liverange's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46579 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Treat the label for the first @llvm.dbg.stoppoint the same way as the ↵Evan Cheng
dbg_func_start label. Make sure nothing else is inserted before them. Note this solution might be somewhat fragile since ISD::LABEL may be used for other purposes. If that ends up to be an issue, we may need to introduce a different node for debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46571 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Adjust loop per review feedback.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46569 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30A semi-gross fix for a debug info issue. When inserting the "function start" ↵Evan Cheng
label (i.e. first label in the entry block) take care to insert it at the beginning of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46568 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Accept getelementptr starting at GV with all 0 indices as aDale Johannesen
legitimate way of representing global variable GV in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46565 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a ↵Evan Cheng
proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert instruction at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46562 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Add a new PseudoSourceValue class, which will be used to help trackDan Gohman
memory reference information in the backend. Most of this was written by Florian Brander, cleanup and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46556 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Remove a couple more cases of "getNumUses() == 0". No need to walk the linkedNick Lewycky
list just to see if whether the list is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46555 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Use empty() instead of comparing size() with zero.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46554 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Don't DCE FreeInst's. We were using those! Patch from Owen Anderson.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46553 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Skip over the label which marks the beginning of the function before ↵Evan Cheng
inserting prologue code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46546 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Back out mods to llvmAsmParser, incorrectly committedScott Michel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46545 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30More cleanups for CellSPU:Scott Michel
- Expand tabs... (poss 80-col violations, will get them later...) - Consolidate logic for SelectDFormAddr and SelectDForm2Addr into a single function, simplifying maintenance. Also reduced custom instruction generation for SPUvecinsert/INSERT_MASK. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46544 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Make DSE much more aggressive by performing DCE earlier. Update a testcase ↵Owen Anderson
to reflect this increased aggressiveness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46542 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Fix an issue where, under very specific circumstances, memdep could end up ↵Owen Anderson
dereferencing the end of one of its internal maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46541 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Fix a bug where scalarrepl would discard offset if type would match.Chris Lattner
In practice this can only happen on code with already undefined behavior, but this is still a good thing to handle correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46539 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Factor the addressing mode and the load/store VT out of LoadSDNodeDan Gohman
and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46538 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Work in progress. This patch *fixes* x86-64 calls which are modelled as ↵Evan Cheng
StructRet but really should be return in registers, e.g. _Complex long double, some 128-bit aggregates. This is a short term solution that is necessary only because llvm, for now, cannot model i128 nor call's with multiple results. Status: This only works for direct calls, and only the caller side is done. Disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46527 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29When expanding an operand, it's not the result valueDuncan Sands
type that matters but the operand type. This fixes 2008-01-08-IllegalCMP.ll which crashed with the new legalize infrastructure because SETCC with result type i8 and operand type i64 was being custom expanded by the X86 backend. With this fix, the gcc build gets as far as the first libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46525 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Don't let globalopt hack on volatile loads or stores.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46523 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Use empty() instead of comparing size() with zero.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix a typo in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46513 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix 80-col violations.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46510 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Remove top-level const qualifiers from casts, avoiding associatedDan Gohman
compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46509 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix a typo in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46508 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Add explicit keywords.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46506 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29eliminate additions of 0.0 when they are obviously dead. This has to be ↵Chris Lattner
careful to avoid turning -0.0 + 0.0 -> -0.0 which is incorrect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46499 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Use getPreferredAlignmentLog or getPreferredAlignmentDuncan Sands
to get the alignment of global variables, rather than using hand-made versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46495 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Add support for eliminating memcpy's at the end of functions. Also fix some ↵Owen Anderson
errors I noticed in the handling of eliminating stores to byval arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46494 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29RegAllocBigBlock doesn't need LiveVariables either.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46488 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Properly expand extract-element for non-power-of-2 codegenNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46486 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Handle 'X' constraint in asm's better.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46485 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Filter loops that subtract induction variables.Devang Patel
These loops are not yet handled. Fix PR 1912. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46484 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Overhaul Cell SPU's addressing mode internals so that there are nowScott Michel
only two addressing mode nodes, SPUaform and SPUindirect (vice the three previous ones, SPUaform, SPUdform and SPUxform). This improves code somewhat because we now avoid using reg+reg addressing when it can be avoided. It also simplifies the address selection logic, which was the main point for doing this. Also, for various global variables that would be loaded using SPU's A-form addressing, prefer D-form offs[reg] addressing, keeping the base in a register if the variable is used more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46483 91177308-0d34-0410-b5e6-96231b3b80d8