History log of /external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ed3e0638525f4e5bc39d3ecc5d6282b7638ada94 21-Sep-2010 Chris Lattner <sabre@nondot.org> fix a long standing wart: all the ComplexPattern's were being
passed the root of the match, even though only a few patterns
actually needed this (one in X86, several in ARM [which should
be refactored anyway], and some in CellSPU that I don't feel
like detangling). Instead of requiring all ComplexPatterns to
take the dead root, have targets opt into getting the root by
putting SDNPWantRoot on the ComplexPattern.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
81760863d144656b1d9753cbedb4d97927429b81 04-Sep-2010 Chris Lattner <sabre@nondot.org> zap dead code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
de09e922a6a82ff48d31328606f691591ae8fa19 07-Jul-2010 Devang Patel <dpatel@apple.com> Propagate debug loc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
dbb121b1f19bf77e0bef8725d5ee42c1b8761caf 17-Apr-2010 Dan Gohman <gohman@apple.com> Use const qualifiers with TargetLowering. This eliminates several
const_casts, and it reinforces the design of the Target classes being
immutable.

SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.

And PIC16's AsmPrinter no longer uses TargetLowering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
36c56d0353f1a9c4e878f509aff85a62e5087dd4 15-Apr-2010 Dan Gohman <gohman@apple.com> Add const qualifiers to CodeGen's use of LLVM IR constructs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
087340ec12cbd65e0e16e9ac9be194b3b57c8f2e 02-Mar-2010 Chris Lattner <sabre@nondot.org> remove 300 lines of code that is now dead in the MSP430 backend
now that isel handles chains more aggressively. This also
allows us to make isLegalToFold non-virtual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
017965026f37cd0b619b3f580f544566fe560950 02-Mar-2010 Chris Lattner <sabre@nondot.org> Fix some issues in WalkChainUsers dealing with
CopyToReg/CopyFromReg/INLINEASM. These are annoying because
they have the same opcode before an after isel. Fix this by
setting their NodeID to -1 to indicate that they are selected,
just like what automatically happens when selecting things that
end up being machine nodes.

With that done, give IsLegalToFold a new flag that causes it to
ignore chains. This lets the HandleMergeInputChains routine be
the one place that validates chains after a match is successful,
enabling the new hotness in chain processing. This smarter
chain processing eliminates the need for "PreprocessRMW" in the
X86 and MSP430 backends and enables MSP to start matching it's
multiple mem operand instructions more aggressively.

I currently #if out the dead code in the X86 backend and MSP
backend, I'll remove it for real in a follow-on patch.

The testcase changes are:
test/CodeGen/X86/sse3.ll: we generate better code
test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was
miscompiling this before, we now generate correct code
Convert it to filecheck while I'm at it.
test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem
folding to make anton happy. :)




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
6411e3e62ea9dfe23f5fa24b9d6a84da7ec70a98 02-Mar-2010 Chris Lattner <sabre@nondot.org> Sink InstructionSelect() out of each target into SDISel, and rename it
DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader.
Sink some other stuff out of DAGISelHeader into SDISel.

Eliminate the various 'Indent' stuff from various targets, which dates
to when isel was recursive.

17 files changed, 114 insertions(+), 430 deletions(-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
f80681ead6c31677f300779fe356c77e34678396 15-Feb-2010 Evan Cheng <evan.cheng@apple.com> Split SelectionDAGISel::IsLegalAndProfitableToFold to
IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use.

This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
5f082a7df38fa6d7b53c0d7baeca8d74f097d659 05-Jan-2010 Dan Gohman <gohman@apple.com> Change SelectCode's argument from SDValue to SDNode *, to make it more
clear what information these functions are actually using.

This is also a micro-optimization, as passing a SDNode * around is
simpler than passing a { SDNode *, int } by value or reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
87e3a09d6ad1b6a1b70fbce32bc3f487c5cb0ffb 28-Dec-2009 Bill Wendling <isanbard@gmail.com> Remove dead variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
efb9350360fe13284f9162fec884d16590da206a 13-Dec-2009 Anton Korobeynikov <asl@math.spbu.ru> Do not allow uninitialize access during debug printing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
9b9d2a5f2053a53da30f4bc42f18df77646ca3a9 21-Nov-2009 Dan Gohman <gohman@apple.com> Update for new getBlockAddress signature.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
8154d2e023fe3137363f8bbc9dae2dff7188dccb 10-Nov-2009 Jeffrey Yasskin <jyasskin@google.com> Fix DenseMap iterator constness.

This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.

The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.

Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.

Patch by Victor Zverovich!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
fc5c66b384e5ac8089737a40b97a02ae32176142 08-Nov-2009 Anton Korobeynikov <asl@math.spbu.ru> Fix invalid operand updates & implement post-inc memory operands

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
a0e695bd1f1afe129a7e294b02cdba45629f0c9c 07-Nov-2009 Anton Korobeynikov <asl@math.spbu.ru> First try of the post-inc operands handling... Not fully worked, though :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
a6d97be420bb6fe615998154f555b06be9cc1cf5 07-Nov-2009 Anton Korobeynikov <asl@math.spbu.ru> Add some dummy support for post-incremented loads

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
1c7e166ffb74e4504175767260bd1e23e35f98b7 07-Nov-2009 Anton Korobeynikov <asl@math.spbu.ru> Initial support for addrmode handling. Tests by Brian Lucas!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
7abf0939c0cf058c89bfdf010ebfa0377fb17034 05-Nov-2009 Dan Gohman <gohman@apple.com> Remove uninteresting and confusing debug output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
812c4346ae2badfb759ba1a0c1187eda28092821 22-Oct-2009 Benjamin Kramer <benny.kra@googlemail.com> Shift art to the right to keep GCC from complaining about multi-line comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
fadf5e5953fdd1925c1d71dec4d771ab06b2e186 22-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Use special DAG-to-DAG preprocessing to allow mem-mem instructions to be selected.
Yay for ASCII graphics!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
85a066070801c2ab1d8a39dcb0c5033fb188e9d8 21-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Add DAG printing for RMW stuff debugging

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
a3d275414331b53b0a3ed6490719417c016b3515 21-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> RMW preprocessing stuff was incorrect. Grab the stuff from x86 backend and disable some tests until it will be clever enough to handle them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
1bb755cbeeabe6610220f1867fc08ea9503775a4 12-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Add MSP430 mem-mem insts support. Patch by Brian Lucas with some my refinements

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
9cbe2bc74aff10a95b2ee6ed6fb4a47dffee4751 11-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Implement 'm' memory operand properly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
61fda0d889b3578fe435455679182c231a649aac 25-Sep-2009 Dan Gohman <gohman@apple.com> Rename getTargetNode to getMachineNode, for consistency with the
naming scheme used in SelectionDAG, where there are multiple kinds
of "target" nodes, but "machine" nodes are nodes which represent
a MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
33b2663488b0f8f188c1a6003faabd5ee89f7749 23-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix some refactos for iostream changes (in -Asserts mode).
- The world needs better C++ refactoring tools, can I get an Amen!?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
2c6014b7beb12b2eb1f2487d3b52ebea13b7f58e 23-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate the last DOUTs from the targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
36e3a6e235ee8b21eba777686b4508f71248b869 11-Aug-2009 Owen Anderson <resistor@mac.com> Split EVT into MVT and EVT, the former representing _just_ a primitive type, while
the latter is capable of representing either a primitive or an extended type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
ac9de036dc0e4065ee2c03419f11515a34ce505e 11-Aug-2009 Owen Anderson <resistor@mac.com> Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
4d9756a9843862edb9daddfaa0d8c78ac1c52b32 08-Jul-2009 Edwin Török <edwintorok@gmail.com> Implement changes from Chris's feedback.
Finish converting lib/Target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
7a969d8c47d8916099ff7a2dcb87cf42137e03c4 04-May-2009 asl <asl@91177308-0d34-0410-b5e6-96231b3b80d8> Fix code emission for conditional branches.
Patch by Collin Winter!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
0d370dcf2d8b7092355935d7d52e7236dd745345 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Update due to mainline API change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
7a872e95a74b53a5360b559e4096dcb6753263da 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Add 8bit shifts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
165bbe3b7517003c363e54f3187f5dcc1218e2dd 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Properly handle ExternalSymbol's

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
76f578d8a41309e9a74e1c87476b9a19693cbb93 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Small tweaking

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
3c10ef5a963c736849a7bb453238ede34be9eb77 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Proper handle loading of effective address of stack slot stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
9dbaeaa03759d55f35edaf98d6078d7076b99882 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Match frame indexes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
a6e3669f02a049e1fc0e5732d5ffbbe4a19027fd 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Reverse order of memory arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
0a4985b79ec879d0267b6e7d64fc551249c086c8 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Correct asmprinting of memory operands

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
9841d21a31cbc34a0915671ac89116215568ace7 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Match wrapper node for address

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
4c88f11c8739ff1395bc5b07b223eb84894d50e9 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Basic support for mem=>reg moves

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
81e1f97bd3da47ff1b0cb85336a104a7a654f310 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Clearify the usage and add some debug stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
10a5a3c82145edc6fe8e9b030b0ccb27b625adb1 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
37171571716b9cb7c5aeb5b45d95b1fbd0716d03 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Dummy MSP430 backend

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp