aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-08-27Update a comment to reflect recent changes.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55418 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Unbreak PseudoSourceValue::print. This fixes -print-machine-instrsDan Gohman
and various other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55415 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Diagnose uses of unsized types with the byval attribute in theDan Gohman
verifier. See PR2711 for details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Update wording, as aggregates are now first-class.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55413 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Add DebugInfoBuilder. Patch by Talin!Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55409 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Basic FastISel support for floating-point constants.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55401 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Fix handling of inttoptr and ptrtoint when unhandled operands are present.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55400 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27Add support for fast isel of inttoptr and ptrtoint in the cases where ↵Owen Anderson
truncation is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55399 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Factor out a large amoutn of the cast handling code in fast isel into helper ↵Owen Anderson
methods. This simultaneously makes the code simpler and adds support for sext as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55398 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Add a MachineInstrBuilder method for adding floating-pointDan Gohman
immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55397 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Add support for fast isel of zext.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55396 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26disallow direct access to SDValue::ResNo, provide a getter insteadGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55394 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Add support for fptosi of constants in fast isel.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55393 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Put a heuristic in place to prevent GVN from falling into bad cases with ↵Owen Anderson
massively complicated CFGs. This speeds up a particular testcase from 12+ hours to 5 seconds with little perceptible loss of quality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55391 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Optimize SelectionDAG's topological sort to use one pass insteadDan Gohman
of two, and to not need a scratch std::vector. Also, use the SelectionDAG's topological sort in LegalizeDAG instead of having a separate implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55389 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Refactor the bitcast code into its own function.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55387 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Refactor a bunch of FastISelEmitter code into a helper class, andDan Gohman
put each major step in a separate function. This makes the high level sequence of events easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55385 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Make FastISel use the correct argument type when casting GEP indices.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55384 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Don't select binary instructions with illegal types.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55383 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Add support for fast isel of sitofp, and remove some unnecessary and ↵Owen Anderson
imprecise legality checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55381 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26- small bug corrected: incorrect iterator type.Cedric Venet
- fix to please VS: add a return after an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55380 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel ↵Owen Anderson
of bitcasts, allowing it to support the full range of conversions people might ask for in a correct manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55378 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26These assertions should be return false's instead, allowing the client to ↵Owen Anderson
detect the failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55377 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26We need to check that the return type is correct, even in cases where we don'tOwen Anderson
have a return type that differs from the operand types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55376 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy ↵Owen Anderson
requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55375 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26If IV is used in a int-to-float cast inside the loop then try to eliminate ↵Devang Patel
the cast operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55374 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Add support for fast isel of non-constant fptosi instructions.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55373 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26fix doxygen commentGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55372 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Grammar fix.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55371 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Added "str()" method to raw_string_ostream.Ted Kremenek
str() mirrors the same method in std::ostringstream. str() flushes the buffered stream contents to string and returns a reference to the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55370 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26code simplification, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55363 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26stabilize more printing, this doesn't cause a problemChris Lattner
in the example attached to PR2590, but is a problem in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55361 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26stablize SubRegsSet printing, part of PR2590Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55360 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Stabilize 'getDwarfRegNumFull' output to not depend on random memory Chris Lattner
orders, part of PR2590 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55359 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26If an xmm register is referenced explicitly in an inline asm, make sure to Chris Lattner
assign it to a version of the xmm register with the regclass that matches its type. This fixes PR2715, a bug handling some crazy xpcom case in mozilla. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55358 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26typo fix.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55355 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Actually recycle SDNode allocations. SelectionDAG is usingDan Gohman
RecyclingAllocator, but this change is needed for the nodes to actually be recycled. This cuts SelectionDAG's memory usage high-water-mark in half in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55351 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Avoid a warning about isTargetNullPtr being unused in release builds.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Throw the switch to allow FastISel to emit instructions whose return types ↵Owen Anderson
different from their inputs. Next step: adding lowering pattens in FastISel that actually use these newly available opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55349 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26This is done.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55348 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26Enhance TableGen to emit code for FastISel of opcodes with variadic return ↵Owen Anderson
types without slowing down opcodes that are not variadic. No such opcodes are currently generated, but in theory it should be a matter of just hitting the switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55347 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Add a RetVT parameter to emitted FastISel methods, so that we will be able ↵Owen Anderson
to pass the desired return type down. This is not currently used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55345 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Deepen the map structure tablegen uses to compute FastISel patterns, in ↵Owen Anderson
preparation for having patterns with return types that differ from their input types. This is not yet used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55344 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Implement 32 & 64 bit versions of PPC atomicDale Johannesen
binary primitives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55343 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Unbreak build.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55342 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-2580 col. violations.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55341 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Expand bitcast support in fast isel to support bitcasts of non-constant ↵Owen Anderson
values by emitting reg-reg copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Try approach to moving call address load inside of callseq_start. Now it's ↵Evan Cheng
done during the preprocess of x86 isel. callseq_start's chain is changed to load's chain node; while load's chain is the last of callseq_start or the loads or copytoreg nodes inserted to move arguments to the right spot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55338 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Remove PPC-specific lowering for atomics; theDale Johannesen
generic stuff works fine. Mark rewritten cmp-and-swap as not using CR1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55336 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-25Add support for fast isel of (integer) immediate materialization pattens, ↵Owen Anderson
and use them to support bitcast of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55325 91177308-0d34-0410-b5e6-96231b3b80d8