• Home
  • History
  • Annotate
  • only in /external/llvm/lib/Target/Sparc/
History log of /external/llvm/lib/Target/Sparc/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
smParser/SparcAsmParser.cpp
nstPrinter/SparcInstPrinter.cpp
CTargetDesc/SparcAsmBackend.cpp
CTargetDesc/SparcMCCodeEmitter.cpp
CTargetDesc/SparcMCExpr.cpp
CTargetDesc/SparcMCExpr.h
parcFrameLowering.cpp
parcFrameLowering.h
parcISelLowering.cpp
parcJITInfo.cpp
parcSelectionDAGInfo.cpp
parcSelectionDAGInfo.h
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
smParser/LLVMBuild.txt
smParser/SparcAsmParser.cpp
elaySlotFiller.cpp
isassembler/LLVMBuild.txt
isassembler/SparcDisassembler.cpp
nstPrinter/SparcInstPrinter.cpp
nstPrinter/SparcInstPrinter.h
CTargetDesc/SparcAsmBackend.cpp
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
CTargetDesc/SparcMCCodeEmitter.cpp
CTargetDesc/SparcMCExpr.cpp
CTargetDesc/SparcMCExpr.h
CTargetDesc/SparcMCTargetDesc.cpp
parcAsmPrinter.cpp
parcCodeEmitter.cpp
parcFrameLowering.cpp
parcFrameLowering.h
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrAliases.td
parcInstrInfo.cpp
parcInstrInfo.h
parcJITInfo.cpp
parcJITInfo.h
parcMCInstLower.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
parcSelectionDAGInfo.cpp
parcSubtarget.cpp
parcTargetMachine.cpp
parcTargetMachine.h
parcTargetObjectFile.cpp
parcTargetStreamer.h
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
smParser/CMakeLists.txt
smParser/LLVMBuild.txt
smParser/Makefile
smParser/SparcAsmParser.cpp
MakeLists.txt
elaySlotFiller.cpp
isassembler/CMakeLists.txt
isassembler/LLVMBuild.txt
isassembler/Makefile
isassembler/SparcDisassembler.cpp
nstPrinter/CMakeLists.txt
nstPrinter/LLVMBuild.txt
nstPrinter/Makefile
nstPrinter/SparcInstPrinter.cpp
nstPrinter/SparcInstPrinter.h
LVMBuild.txt
CTargetDesc/CMakeLists.txt
CTargetDesc/LLVMBuild.txt
CTargetDesc/SparcAsmBackend.cpp
CTargetDesc/SparcBaseInfo.h
CTargetDesc/SparcELFObjectWriter.cpp
CTargetDesc/SparcFixupKinds.h
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
CTargetDesc/SparcMCCodeEmitter.cpp
CTargetDesc/SparcMCExpr.cpp
CTargetDesc/SparcMCExpr.h
CTargetDesc/SparcMCTargetDesc.cpp
CTargetDesc/SparcMCTargetDesc.h
CTargetDesc/SparcTargetStreamer.cpp
akefile
parc.h
parc.td
parcAsmPrinter.cpp
parcCallingConv.td
parcCodeEmitter.cpp
parcFrameLowering.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrAliases.td
parcInstrFormats.td
parcInstrInfo.cpp
parcInstrInfo.td
parcInstrVIS.td
parcJITInfo.cpp
parcMCInstLower.cpp
parcRegisterInfo.cpp
parcRegisterInfo.td
parcRelocations.h
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetObjectFile.cpp
parcTargetObjectFile.h
parcTargetStreamer.h
argetInfo/CMakeLists.txt
argetInfo/LLVMBuild.txt
7d9c02dc620ea5f5cdf2dc0bd0f03d9370f845d3 09-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196751:
------------------------------------------------------------------------
r196751 | venkatra | 2013-12-08 20:02:15 -0800 (Sun, 08 Dec 2013) | 3 lines

[Sparc]: Implement getSetCCResultType() in SparcTargetLowering so that umulo/smulo can be lowered on sparcv9 without an assertion error.


------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196766 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
571a02f291b051b22d804f90257e2623cbacd7ec 09-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196755:
------------------------------------------------------------------------
r196755 | venkatra | 2013-12-08 21:13:25 -0800 (Sun, 08 Dec 2013) | 2 lines

[SPARCV9]: Adjust the resultant pointer of DYNAMIC_STACKALLOC with the stack BIAS on sparcV9.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196764 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f9a98aeb5b5129c9eeb95978c7cf925e4a88e224 09-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196735:
------------------------------------------------------------------------
r196735 | venkatra | 2013-12-08 14:06:07 -0800 (Sun, 08 Dec 2013) | 3 lines

[SparcV9]: Expand MULHU/MULHS:i64 and UMUL_LOHI/SMUL_LOHI:i64 on sparcv9.
This fixes PR18150.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196744 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f914aab181e9deb5852dcc5b99fd70e0f5d9db98 01-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r195590:
------------------------------------------------------------------------
r195590 | chapuni | 2013-11-24 16:52:46 -0800 (Sun, 24 Nov 2013) | 1 line

SparcFrameLowering.cpp: Prune 'DL' [-Wunused-variable]
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196003 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
3a1e76d62706f2773c23a684446b4c549c151669 27-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195576:
------------------------------------------------------------------------
r195576 | venkatra | 2013-11-24 12:23:25 -0800 (Sun, 24 Nov 2013) | 2 lines

[Sparc] Emit large negative adjustments to SP/FP with sethi+xor instead of sethi+or. This generates correct code for both sparc32 and sparc64.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195870 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcFrameLowering.cpp
parcFrameLowering.h
parcRegisterInfo.cpp
1cefde83ffcfe869e86ef1976667f47856087dd3 27-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195575:
------------------------------------------------------------------------
r195575 | venkatra | 2013-11-24 12:07:35 -0800 (Sun, 24 Nov 2013) | 2 lines

[Sparc]: Implement LEA pattern for sparcv9.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195869 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
parcInstrInfo.td
8bb91f77cb1488c19cb4bdb17b4af5f093d233fd 27-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195574:
------------------------------------------------------------------------
r195574 | venkatra | 2013-11-24 10:41:49 -0800 (Sun, 24 Nov 2013) | 2 lines

[SparcV9]: Do not emit .register directives for global registers that are clobbered by calls but not used in the function itself.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195868 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f63e418d2c299a540ac27ddfed69b2c4698bb3c3 27-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195573:
------------------------------------------------------------------------
r195573 | venkatra | 2013-11-24 09:41:41 -0800 (Sun, 24 Nov 2013) | 2 lines

[SparcV9] Enable custom lowering of DYNAMIC_STACKALLOC in sparc64.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195867 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
354362524a72b3fa43a6c09380b7ae3b2380cbba 19-Nov-2013 Juergen Ributzka <juergen@apple.com> [weak vtables] Remove a bunch of weak vtables

This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file. The memory leaks in this version have been fixed. Thanks
Alexey for pointing them out.

Differential Revision: http://llvm-reviews.chandlerc.com/D2068

Reviewed by Andy

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195064 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
b21ab43cfc3fa0dacf5c95f04e58b6d804b59a16 18-Nov-2013 Alexey Samsonov <samsonov@google.com> Revert r194865 and r194874.

This change is incorrect. If you delete virtual destructor of both a base class
and a subclass, then the following code:
Base *foo = new Child();
delete foo;
will not cause the destructor for members of Child class. As a result, I observe
plently of memory leaks. Notable examples I investigated are:
ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
5a364c5561ec04e33a6f5d52c14f1bac6f247ea0 15-Nov-2013 Juergen Ributzka <juergen@apple.com> [weak vtables] Remove a bunch of weak vtables

This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file.

Differential Revision: http://llvm-reviews.chandlerc.com/D2068

Reviewed by Andy

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194865 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
3e94418e857d5e17b5d16dbc5abc8b5a8b4efac6 12-Nov-2013 Roman Divacky <rdivacky@freebsd.org> Expand rotate instructions on sparcv9 as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194500 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
fcd5e86396e121fef7ad11d41cc8bc0a541631b2 03-Nov-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [SparcV9] Handle i64 <-> float conversions in sparcv9 mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193957 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrInfo.td
5e45051e0ee8917a88e84d799c5c90840d0c465b 03-Nov-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Expand FP_TO_UINT, UINT_TO_FP for fp128.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193947 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
11cecbe1a070d461bb213a6037712f25e59a920a 03-Nov-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [SparcV9] Add ctpop instruction for i64. Also, expand ctlz, cttz and bswap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193941 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstr64Bit.td
1d6d49fbb104781cc3e9da9dcc3e36b6cbcd38b6 31-Oct-2013 Roman Divacky <rdivacky@freebsd.org> SparcV9 doesnt have rem instruction either.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193789 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ffc7dca885151ed42642c2d6733e8db75d276621 29-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a helper getSymbol to AsmPrinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193627 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
06957f43f6051901590b318c10b1a0a5c7f898d4 16-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a MCAsmInfoELF class and factor some code into it.

We had a MCAsmInfoCOFF, but no common class for all the ELF MCAsmInfos before.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192760 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
3b73dea538d9c53e205d38bfbcf99dd64306874b 09-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Disable tail call optimization for sparc64.

This patch fixes PR17506.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192294 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
26c46ba11c9c614ee79ed7f5c505578187fb2971 08-Oct-2013 NAKAMURA Takumi <geek4civic@gmail.com> SparcJITInfo.cpp: Prune "default:" label to fix a warning. [-Wcovered-switch-default]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192179 91177308-0d34-0410-b5e6-96231b3b80d8
parcJITInfo.cpp
35741ad5180ded4c272594dd52b96c1ccd20e33e 08-Oct-2013 NAKAMURA Takumi <geek4civic@gmail.com> Prune trailing linefeeds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192178 91177308-0d34-0410-b5e6-96231b3b80d8
parcJITInfo.cpp
38aceb871478893bfa87f94c2cb3a344a4c8c2df 08-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Implement JIT for SPARC.

No new testcases. However, this patch makes all supported JIT testcases in
test/ExecutionEngine pass on Sparc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192176 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMBuild.txt
parc.h
parcCodeEmitter.cpp
parcISelLowering.cpp
parcInstrInfo.td
parcJITInfo.cpp
parcJITInfo.h
parcRelocations.h
parcTargetMachine.cpp
parcTargetMachine.h
argetInfo/SparcTargetInfo.cpp
3bd3419e86867ba88e7ece12c9184a01759ed917 08-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Do not hardcode nop in the delay slot of TLS_CALL. Use DelaySlotFiller to fill the delay slot instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192160 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.td
ef8c4ca252f1289ca8d0a1e6cfd96ca17fe3c5a8 07-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove getEHExceptionRegister and getEHHandlerRegister.

They haven't been used for a long time. Patch by MathOnNapkins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192099 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
79c5e0c5ca85454da568dfafc0bedb84af6c2a68 06-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Do not emit nop after fcmp* instruction with V9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192056 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.td
20b10abf4e88ca532810fbf749b029ce582d6793 06-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Custom lower addc/adde/subc/sube on i64 in sparc64.
This is required because i64 is a legal type but addxcc/subxcc reads icc carry bit, which are 32 bit conditional codes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192054 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstr64Bit.td
bb0ec9840bf6fd06fed967d5e70bee1983971344 06-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use addxcc/subxcc for adde/sube instead of addx/subx.
addx/subx does not modify conditional codes whereas addxcc/subxx does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192053 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
a8147756d681f100e58e88aae842aebf4f51693d 05-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use correct alignment while loading/storing fp128 values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192023 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b648122c5f4dfa651d46c10c39ddf4f2f8cf1170 05-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Respect hasHardQuad parameter correctly when lowering SINT_TO_FP with fp128 operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192015 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
1c9524b6249ab01c71856e69c4f7071236cf54ed 05-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Correct the floating point conditional code mapping in GetOppositeBranchCondition().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192006 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
30ec8a3658b1f06bb94d392c55feb7f107517bf8 26-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Implements exception handling in SPARC with DwarfCFI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191432 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
parcFrameLowering.cpp
parcISelLowering.cpp
ff96efee98f8a06e8fdf29d34843659932a83e95 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use correct instruction pattern for CMPri.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191180 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
0821c72f11659964f76f4326874dd4037900ce14 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Make SPARC instructions' encoding well defined such that TableGen can automatically generate code emitter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191168 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
parcInstrFormats.td
parcInstrInfo.td
69ae8f1abda2cfcbbb2ef895bbe23936d1beddf8 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Clean up MOVcc instructions so that TableGen can encode them correctly. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191167 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
a432a97b62617b8b74219ae60c6c6db5cc5ec7ab 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Clean up branch instructions, so that TableGen can encode branch conditions as well. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191166 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
parcInstrFormats.td
parcInstrInfo.td
3e84ad28d4d3ceee25771b1e30315c20b7608c39 22-Sep-2013 Tim Northover <tnorthover@apple.com> ISelDAG: spot chain cycles involving MachineNodes

Previously, the DAGISel function WalkChainUsers was spotting that it
had entered already-selected territory by whether a node was a
MachineNode (amongst other things). Since it's fairly common practice
to insert MachineNodes during ISelLowering, this was not the correct
check.

Looking around, it seems that other nodes get their NodeId set to -1
upon selection, so this makes sure the same thing happens to all
MachineNodes and uses that characteristic to determine whether we
should stop looking for a loop during selection.

This should fix PR15840.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191165 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7d052f272d3f9ad0acdebf6811e29d529f70c1e1 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add support for TLS in sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191164 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcBaseInfo.h
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrInfo.td
ecd4965c133d16fc9e5a6ac393c5194b67cd53ab 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [SPARC] Make functions with GLOBAL_OFFSET_TABLE access as non-leaf functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191160 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
c12c8d754dcf7793d924c01517c9f6f297fdf6b4 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Emit .register directive to declare the use of global registers %g2, %g4, %g6 and %g7.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191158 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
20b5879e0ec5c926c3b636ad36d5b6cfb278f736 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Fix lowering FABS on fp128 (long double) on pre-v9 targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191154 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
1b41835f02f77c04a93323f722cf158cc566acae 05-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Correctly handle call to functions with ReturnsTwice attribute.

In sparc, setjmp stores only the registers %fp, %sp, %i7 and %o7. longjmp restores
the stack, and the callee-saved registers (all local/in registers: %i0-%i7, %l0-%l7)
using the stored %fp and register windows. However, this does not guarantee that the longjmp
will restore the registers, as they were when the setjmp was called. This is because these
registers may be clobbered after returning from setjmp, but before calling longjmp.

This patch prevents the registers %i0-%i5, %l0-l7 to live across the setjmp call using the register mask.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190033 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
bf34f346420dbcdb3f9376967bde701682471a79 04-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Fix an assertion failure while lowering fcmp on long double.
This assertion is triggered because an integer constant is created with wrong
type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189948 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
75ddb2bb34f96c2bda48d0e86331fb52b55b8d03 03-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add support for soft long double (fp128).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189780 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
6ee0857bd74dd68e46e970a6bcf756ee03ed8e99 02-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Implement spill and load for long double(f128) registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189768 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcRegisterInfo.cpp
2f17d0facf6a489a051c86c015453c2b102e5c37 25-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add long double (f128) instructions to sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189198 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcISelLowering.cpp
parcInstrInfo.td
parcSubtarget.cpp
parcSubtarget.h
5ec8afa7cf9ae11def585fff043b0eabd735ac28 25-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Added V9's extra floating point registers and their aliases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189195 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
b58126124081a9bf8da1368441b00070ed2db232 23-Aug-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use register masks on SPARC call instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189085 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.td
d93969c32a6bbae3326a1f485c4c85be1cb39406 23-Aug-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an OtherPreserved field to the CalleeSaved TableGen class.

This field specifies registers that are preserved across function calls,
but that should not be included in the generates SaveList array.

This can be used ot generate regmasks for architectures that save
registers through other means, like SPARC's register windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189084 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcRegisterInfo.cpp
parcRegisterInfo.h
e3b29fbc5f4d7632a88b6f470a96cc6ac09e31ed 20-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use HWEncoding instead of unused Num field in Sparc register definitions. Also, correct the definitions of RETL and RET instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188738 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcRegisterInfo.td
d8de58e24cf5874c0d6f903d15333406787ea944 10-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Enable xword directive in sparcv9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188141 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
8e1d64666f493e4994b26a390bec1290a5d94b96 06-Aug-2013 NAKAMURA Takumi <geek4civic@gmail.com> Target/*/CMakeLists.txt: Add the dependency to CommonTableGen explicitly for each corresponding CodeGen.

Without explicit dependencies, both per-file action and in-CommonTableGen action could run in parallel.
It races to emit *.inc files simultaneously.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187780 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
8717679c449db5555ec0ce2873bbbe53106f4c88 30-Jul-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Rewrite MBB's live-in registers for leaf functions. Also, add
register i7 as a live-in if current function's return address is taken.

This revision fixes PR16269.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187433 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcISelLowering.cpp
80cdaf35abc528ee00bd49486d455436ec049581 30-Jul-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use call's debugloc for the unimp instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187402 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
a0ec3f9b7b826b9b40b80199923b664bad808cce 14-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
eb4a55c949cc8ee32fdff3bc460f0c2788e247fd 26-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc]: Add memory operands for the frame references in the storeRegToStackSlot
and loadRegFromStackSlot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184935 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
5b3fca50a08865f0db55fc92ad1c037a04e12177 22-Jun-2013 Chad Rosier <mcrosier@apple.com> The getRegForInlineAsmConstraint function should only accept MVT value types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184642 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
ba54bca472a15d0657e1b88776f7069042b60b4e 19-Jun-2013 Bill Wendling <isanbard@gmail.com> Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184360 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
0187e7a9ba5c50b4559e0c2e0afceb6d5cd32190 16-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs

Frame index handling is now target-agnostic, so delete the target hooks
for creation & asm printing of target-specific addressing in DBG_VALUEs
and any related functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184067 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcInstrInfo.h
1799921672835c49f6a29fc27d1840b7c36beabd 08-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Delete FPMover Pass and remove Fp* Pseudo-instructions from Sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183613 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
PMover.cpp
parc.h
parcISelLowering.cpp
parcInstrInfo.cpp
parcInstrInfo.td
parcTargetMachine.cpp
ec2aaad01bff4ba2dd5cee0cd0bfe723db2619d0 08-Jun-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Remember the anyext patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183589 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
7de1d327f134286d8049adc7b06f92447b4bbecd 08-Jun-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add missing zextloadi1 to i64 patterns. PR16721.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183587 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
c1dcb8d654d4468d63224269ee3c92480bf2385b 07-Jun-2013 Bill Wendling <isanbard@gmail.com> Don't cache the instruction and register info from the TargetMachine, because
the internals of TargetMachine could change.

No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183565 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
6ca5fd3f30081853cfcf7f83a310f94aac2c5e17 07-Jun-2013 Roman Divacky <rdivacky@freebsd.org> Fix a typo in asm string of BP* family of instructions. With this fix
I am able to compile/assemble/link/run /bin/echo from FreeBSD.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183537 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
01021a8b93989a3c9e17dea540fe66809bf25403 07-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc]: Use cmp instruction instead of subcc to compare integers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183463 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstr64Bit.td
parcInstrInfo.td
6a2e7ac0b6647a409394e58b385e579ea62b5cba 06-Jun-2013 Bill Wendling <isanbard@gmail.com> Cache the TargetLowering info object as a pointer.

Caching it as a pointer allows us to reset it if the TargetMachine object
changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183361 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
1e06bcbd633175d75d13aaa5695ca0633ba86068 04-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: No functionality change. Cleanup whitespaces, comment formatting etc.,


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183243 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
LVMBuild.txt
EADME.txt
parc.h
parc.td
parcAsmPrinter.cpp
parcCallingConv.td
parcFrameLowering.cpp
parcFrameLowering.h
parcISelLowering.cpp
parcInstrFormats.td
parcInstrInfo.cpp
parcInstrInfo.h
parcInstrInfo.td
parcRegisterInfo.cpp
parcRegisterInfo.td
parcSubtarget.cpp
parcSubtarget.h
e7cbb792c95cb27a9704551579da19ebcaa06cdb 03-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Add support for indirect branch and blockaddress in Sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183094 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
85cc972a06690507a2660fccb198319b0402105f 03-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: When storing 0, use %g0 directly in the store instruction instead of
using two instructions (sethi and store).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183090 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
parcInstrInfo.td
65ca7aa57d5e9b391f02a5686e7622deaac146f9 02-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Combine add/or/sethi instruction with restore if possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183088 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
dd48226b15510c57a9486aa2bbc38bd0eb2cbb40 02-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Perform leaf procedure optimization by default

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183083 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
a0b34d6c4ab05d0c04905e2aff0c9e6b879908ff 01-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Mark functions calling llvm.vastart and llvm.returnaddress intrinsics as non-leaf functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183079 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
72ad17c48c15562fe31c65f6daa09c83f42860c1 01-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Generate correct code for leaf functions with stack objects


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183067 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcRegisterInfo.cpp
parcSubtarget.cpp
parcSubtarget.h
23ed37a6b76e79272194fb46597f7280661b828f 01-Jun-2013 Ahmed Bougacha <ahmed.bougacha@gmail.com> Make SubRegIndex size mandatory, following r183020.

This also makes TableGen able to compute sizes/offsets of synthesized
indices representing tuples.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183061 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
6e0b2a0cb0d398f175a5294bf0ad5488c714e8c2 30-May-2013 Andrew Trick <atrick@apple.com> Order CALLSEQ_START and CALLSEQ_END nodes.

Fixes PR16146: gdb.base__call-ar-st.exp fails after
pre-RA-sched=source fixes.

Patch by Xiaoyi Guo!

This also fixes an unsupported dbg.value test case. Codegen was
previously incorrect but the test was passing by luck.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182885 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
d1c180e0305c5bedb2b4259c1d841e944d043880 29-May-2013 NAKAMURA Takumi <geek4civic@gmail.com> SparcFrameLowering.cpp: Mark verifyLeafProcRegUse() as UNUSED. [-Wunused-function]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182850 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
530086925695f074b0e1e38a0d88ee6a4c91c54c 29-May-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add support for leaf functions in sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182822 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcFrameLowering.cpp
parcFrameLowering.h
parcMachineFunctionInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.td
ac6d9bec671252dd1e596fa71180ff6b39d06b5d 25-May-2013 Andrew Trick <atrick@apple.com> Track IR ordering of SelectionDAG nodes 2/4.

Change SelectionDAG::getXXXNode() interfaces as well as call sites of
these functions to pass in SDLoc instead of DebugLoc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182703 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
89f530ebbfa91d1583a72d86dc6ca2804f4f450d 20-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Also expand 64-bit bitcasts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182229 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
5e5b78ca364ee61c6963070e5a5a346499ab6ee2 20-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement spill and fill of I64Regs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182228 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
900622e099054da4a213074581d8501ac27e7ea7 20-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Mark i64 SETCC as expand so it is turned into a SELECT_CC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182227 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
634123e98de9c87aa1275a5ccc6b69be97d0ca71 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Don't use %g0 to materialize 0 directly.

The wired physreg doesn't work on tied operands like on MOVXCC.

Add a README note to fix this later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182225 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcInstr64Bit.td
60abcb786e8ff401e7d925d717e725d4a3d925b5 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Select i64 values with %icc conditions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182224 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
51d46c36bc9e1611858c0d2a2675951c97fbfb2c 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add floating point selects on %xcc predicates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182222 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
89db6732fbd987a33751f4aff01b8e4b0a630d91 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement SPselectfcc for i64 operands.

Also clean up the arguments to all the MOVCC instructions so the
operands always are (true-val, false-val, cond-code).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182221 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
parcInstrInfo.td
21886a495a5467aa241f325cdd3dd2532fa7dcde 19-May-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Rearrange integer registers' allocation order so that register allocator will use I and G registers before using L and O registers.

Also, enable registers %g2-%g4 to be used in application and %g5 in 64 bit mode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182219 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
00ce0f6512a36ff18fcd223dfebc5469e3600652 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Handle i64 FrameIndex nodes in SPARC v9 mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182216 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
a65d33760bae63b11569117597cf0fbd64f5c0eb 17-May-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Implements hasReservedCallFrame and hasFP.
This is to generate correct framesetup code when the function
has variable sized allocas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182108 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcFrameLowering.h
d6b4caf291aa8c3cd4bcb5f3b55b72621b506278 17-May-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Prevent instructions that defines or uses %o7 to be in call's delay slot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182063 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b 13-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the MachineMove class.

It was just a less powerful and more confusing version of
MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
dwarf register numbers, calls to getDwarfRegNum are pushed out, which
should allow further simplifications.

I left the MachineModuleInfo::addFrameMove interface unchanged since
this patch was already fairly big.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181680 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
6e53180db120b30f600ac31611a9dd47ef7f4921 10-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181618 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
ddb14ce76cbdf682d95765aa1e576fafeec180ae 21-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Passing arguments to varags functions under the SPARC v9 ABI.

Arguments after the fixed arguments never use the floating point
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179987 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
2c6b5a8d33a650b9a5b838f6bc8887c8f195f944 21-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix the SETHIimm pattern for 64-bit code.

Don't ignore the high 32 bits of the immediate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179985 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
da8768b2dd31e99679fa898bbce33d6a8bbf9395 21-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Compile varargs functions for SPARCv9.

With a little help from the frontend, it looks like the standard va_*
intrinsics can do the job.

Also clean up an old bitcast hack in LowerVAARG that dealt with
unaligned double loads. Load SDNodes can specify an alignment now.

Still missing: Calling varargs functions with float arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179961 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
6265d5c91a18b2fb6499eb581c488315880c044d 20-Apr-2013 Tim Northover <Tim.Northover@arm.com> Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179939 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ad36608499429cc9dc67b95fed8732a294e6f02e 16-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit multiply and divide instructions for SPARC v9.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179582 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstr64Bit.td
d9f88da7b329c54ccb0d2ebd3b3a4b0e4b1e2b06 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use i32 for all SPARC shift amounts, even in 64-bit mode.

Test case by llvm-stress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179477 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrFormats.td
618eda7a60bafff7741a988e27b98bf81d27cb89 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add support for the abs64 SPARC v9 code model.

For when 16 TB just isn't enough.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179474 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
87ce01739b058fd6d929cd8e609ceecf82f919a7 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add support for the SPARC v9 abs44 code model.

This is the default model for non-PIC 64-bit code. It supports
text+data+bss linked anywhere in the low 16 TB of the address space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179473 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
cab0abd03ded35006f594c2a7707753eefd88530 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use target flags for printing SPARC asm operands.

64-bit code models need multiple relocations that can't be inferred from
the opcode like they can in 32-bit code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179472 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
26932106562adbe3f186b8f32fd5057d9f373875 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Also put target flags on SPARC constant pool references.

Constant pool entries are accessed exactly the same way as global
variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179471 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
ef596e1a80a9790efbc905c57b4e06ba6addb95a 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix patterns for 64-bit pointers.

This fixes the pic32 code model for SPARC v9.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179469 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
0ec587e26cd7e048b3150f89fa6d6245d5728cec 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add target flags to SPARC address operands.

SDNodes and MachineOperands get target flags representing the %hi() and
%lo() assembly annotations that eventually become relocations.

Also define flags to be used by the 64-bit code models.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179468 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcBaseInfo.h
parcISelLowering.cpp
parcISelLowering.h
41d59c61307002823c246c14589048266a6bf423 13-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Define SPARC code models.

Currently, only abs32 and pic32 are implemented. Add a test case for
abs32 with 64-bit code. 64-bit PIC code is currently broken.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179463 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcISelLowering.cpp
41b585ca0e706a6d43ca185e88a609178e8629e7 13-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use the correct types when matching ADDRri patterns from frame indexes.

It doesn't seem like anybody is checking types this late in isel, so no
test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179462 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
1b133a478baaec072d937dd577c63094fdfcd4bb 09-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Extract a function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179086 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
6ed9284c2bcfb81fa0303409c6bd4366bc1e822a 09-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Compute correct frame sizes for SPARC v9 64-bit frames.

The save area is twice as big and there is no struct return slot. The
stack pointer is always 16-byte aligned (after adding the bias).

Also eliminate the stack adjustment instructions around calls when the
function has a reserved stack frame.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179083 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcFrameLowering.h
parcISelLowering.cpp
18fdb398ea94c7ddee40bec49f63491922c5b110 07-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement LowerCall_64 for the SPARC v9 64-bit ABI.

There is still no support for byval arguments (which I don't think are
needed) and varargs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178993 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
53d4bcf35e7bc362e9340085264c2f4acd3c912b 07-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement LowerReturn_64 for SPARC v9.

Integer return values are sign or zero extended by the callee, and
structs up to 32 bytes in size can be returned in registers.

The CC_Sparc64 CallingConv definition is shared between
LowerFormalArguments_64 and LowerReturn_64. Function arguments and
return values are passed in the same registers.

The inreg flag is also used for return values. This is required to handle
C functions returning structs containing floats and ints:

struct ifp {
int i;
float f;
};

struct ifp f(void);

LLVM IR:

define inreg { i32, float } @f() {
...
ret { i32, float } %retval
}

The ABI requires that %retval.i is returned in the high bits of %i0
while %retval.f goes in %f1.

Without the inreg return value attribute, %retval.i would go in %i0 and
%retval.f would go in %f3 which is a more efficient way of returning
%multiple values, but it is not ABI compliant for returning C structs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178966 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
2b9355f2d9888d6a011353610b9ca24818de59a2 06-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> SPARC v9 stack pointer bias.

64-bit SPARC v9 processes use biased stack and frame pointers, so the
current function's stack frame is located at %sp+BIAS .. %fp+BIAS where
BIAS = 2047.

This makes more local variables directly accessible via [%fp+simm13]
addressing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178965 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcSubtarget.h
1f25fe50236e5842b19198fbfe8a812be0b40cf5 06-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Complete formal arguments for the SPARC v9 64-bit ABI.

All arguments are formally assigned to stack positions and then promoted
to floating point and integer registers. Since there are more floating
point registers than integer registers, this can cause situations where
floating point arguments are assigned to registers after integer
arguments that where assigned to the stack.

Use the inreg flag to indicate 32-bit fragments of structs containing
both float and int members.

The three-way shadowing between stack, integer, and floating point
registers requires custom argument lowering. The good news is that
return values are passed in the exact same way, and we can share the
code.

Still missing:

- Update LowerReturn to handle structs returned in registers.
- LowerCall.
- Variadic functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178958 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
0e164884423e9f0f22670015a428946ebf178545 04-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add SPARC v9 support for select on 64-bit compares.

This requires v9 cmov instructions using the %xcc flags instead of the
%icc flags.

Still missing:
- Select floats on %xcc flags.
- Select i64 on %fcc flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178737 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrInfo.td
8534e9998c53efae49e4555ba394f39808fb83e0 03-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit compare + branch for SPARC v9.

The same compare instruction is used for 32-bit and 64-bit compares. It
sets two different sets of flags: icc and xcc.

This patch adds a conditional branch instruction using the xcc flags for
64-bit compares.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178621 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstr64Bit.td
parcInstrInfo.td
parcRegisterInfo.td
61ed5ddefe96cb6cb689fbcc74f95cfa00f493a1 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit load and store instructions.

There is only a few new instructions, the rest is handled with patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178528 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
73c5f80ec9913c9bd14955c0bd1dc8a62778f21a 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Basic 64-bit ALU operations.

SPARC v9 extends all ALU instructions to 64 bits, so we simply need to
add patterns to use them for both i32 and i64 values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178527 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
39e75544dc2b695997218ce85f7ca5b465e9c154 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Materialize 64-bit immediates.

The last resort pattern produces 6 instructions, and there are still
opportunities for materializing some immediates in fewer instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178526 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
c3ff3f42ee9a9fb755b0eb0718a31d701b93b3e0 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit shift instructions.

SPARC v9 defines new 64-bit shift instructions. The 32-bit shift right
instructions are still usable as zero and sign extensions.

This adds new F3_Sr and F3_Si instruction formats that probably should
be used for the 32-bit shifts as well. They don't really encode an
simm13 field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178525 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstr64Bit.td
parcInstrFormats.td
parcInstrInfo.td
a10fd6d3d1027b3903d27af701f876e36c1725c0 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add predicates for distinguishing 32-bit and 64-bit modes.

The 'sparc' architecture produces 32-bit code while 'sparcv9' produces
64-bit code.

It is also possible to run 32-bit code using SPARC v9 instructions with:

llc -march=sparc -mattr=+v9

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178524 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
f37812e906a3abbdb8353e2eb9e8223ff9036b68 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add support for 64-bit calling convention.

This is far from complete, but it is enough to make it possible to write
test cases using i64 arguments.

Missing features:
- Floating point arguments.
- Receiving arguments on the stack.
- Calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178523 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
parcISelLowering.h
fcb25e60f514e4dbceecef73ac229c61d6202ed2 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an I64Regs register class for 64-bit registers.

We are going to use the same registers for 32-bit and 64-bit values, but
in two different register classes. The I64Regs register class has a
larger spill size and alignment.

The addition of an i64 register class confuses TableGen's type
inference, so it is necessary to clarify the type of some immediates and
the G0 register.

In 64-bit mode, pointers are i64 and should use the I64Regs register
class. Implement getPointerRegClass() to dynamically provide the pointer
register class depending on the subtarget. Use ptr_rc and iPTR for
memory operands.

Finally, add the i64 type to the IntRegs register class. This register
class is not used to hold i64 values, I64Regs is for that. The type is
required to appease TableGen's type checking in output patterns like this:

def : Pat<(add i64:$a, i64:$b), (ADDrr $a, $b)>;

SPARC v9 uses the same ADDrr instruction for i32 and i64 additions, and
TableGen doesn't know to check the type of register sub-classes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178522 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
parcRegisterInfo.cpp
parcRegisterInfo.h
parcRegisterInfo.td
d28e30fcf44b22c897914343fce9061eb62d3b47 24-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Clean up Sparc patterns.

The types of register variables no longer need to be specified in output
patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177845 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
15a3c18623a05a8b9f2f4ea0b0c15965fda4fe6f 24-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Give Sparc instruction patterns direct types instead of register classes.

Also update the documentation since Sparc is the nicest backend, and
used as an example in WritingAnLLVMBackend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177835 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
edf03820f1d10bbefcb2821e1e0326cad114ed2e 23-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use direct types in Sparc def : Pat patterns.

The SelectionDAG graph has MVT type labels, not register classes, so
this makes it clearer what is happening.

This notation is also robust against adding more types to the IntRegs
register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177829 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
3080d23fde4981835d8a7faf46c152441fadb11f 14-Mar-2013 Hal Finkel <hfinkel@anl.gov> Provide the register scavenger to processFunctionBeforeFrameFinalized

Add the current PEI register scavenger as a parameter to the
processFunctionBeforeFrameFinalized callback.

This change is necessary in order to allow the PowerPC target code to
set the register scavenger frame index after the save-area offset
adjustments performed by processFunctionBeforeFrameFinalized. Only
after these adjustments have been made is it possible to estimate
the size of the stack frame.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177108 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.h
3853f74aba301ef08b699bac2fa8e53230714a58 07-Mar-2013 Benjamin Kramer <benny.kra@googlemail.com> ArrayRefize some code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176648 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
700ed80d3da5e98e05ceb90e9bfb66058581a6db 21-Feb-2013 Eli Bendersky <eliben@google.com> Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo
to TargetFrameLowering, where it belongs. Incidentally, this allows us
to delete some duplicated (and slightly different!) code in TRI.

There are potentially other layering problems that can be cleaned up
as a result, or in a similar manner.

The refactoring was OK'd by Anton Korobeynikov on llvmdev.

Note: this touches the target interfaces, so out-of-tree targets may
be affected.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175788 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcFrameLowering.h
parcRegisterInfo.cpp
parcRegisterInfo.h
067e5a2a1a3ed35bce7dc9e9b2eedee501db53c9 05-Feb-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Move MRI liveouts to Sparc return instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174413 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.td
108fb3202af6f500073cdbb7be32c25d7a273a2e 31-Jan-2013 Chad Rosier <mcrosier@apple.com> [PEI] Pass the frame index operand number to the eliminateFrameIndex function.
Each target implementation was needlessly recomputing the index.
Part of rdar://13076458

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174083 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
8688a58c53b46d2dda9bf50dafd5195790a7ed58 29-Jan-2013 Evan Cheng <evan.cheng@apple.com> Teach SDISel to combine fsin / fcos into a fsincos node if the following
conditions are met:
1. They share the same operand and are in the same BB.
2. Both outputs are used.
3. The target has a native instruction that maps to ISD::FSINCOS node or
the target provides a sincos library call.

Implemented the generic optimization in sdisel and enabled it for
Mac OSX. Also added an additional optimization for x86_64 Mac OSX by
using an alternative entry point __sincos_stret which returns the two
results in xmm0 / xmm1.

rdar://13087969
PR13204


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173755 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
e752feee5228bfa33acee35ef9c606ce12f0f173 23-Jan-2013 Eli Bendersky <eliben@google.com> Clean up assignment of CalleeSaveStackSlotSize: get rid of the default and explicitly set this in every target that needs to change it from the default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173270 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
aeef83c6afa1e18d1cf9d359cc678ca0ad556175 07-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Switch TargetTransformInfo from an immutable analysis pass that requires
a TargetMachine to construct (and thus isn't always available), to an
analysis group that supports layered implementations much like
AliasAnalysis does. This is a pretty massive change, with a few parts
that I was unable to easily separate (sorry), so I'll walk through it.

The first step of this conversion was to make TargetTransformInfo an
analysis group, and to sink the nonce implementations in
ScalarTargetTransformInfo and VectorTargetTranformInfo into
a NoTargetTransformInfo pass. This allows other passes to add a hard
requirement on TTI, and assume they will always get at least on
implementation.

The TargetTransformInfo analysis group leverages the delegation chaining
trick that AliasAnalysis uses, where the base class for the analysis
group delegates to the previous analysis *pass*, allowing all but tho
NoFoo analysis passes to only implement the parts of the interfaces they
support. It also introduces a new trick where each pass in the group
retains a pointer to the top-most pass that has been initialized. This
allows passes to implement one API in terms of another API and benefit
when some other pass above them in the stack has more precise results
for the second API.

The second step of this conversion is to create a pass that implements
the TargetTransformInfo analysis using the target-independent
abstractions in the code generator. This replaces the
ScalarTargetTransformImpl and VectorTargetTransformImpl classes in
lib/Target with a single pass in lib/CodeGen called
BasicTargetTransformInfo. This class actually provides most of the TTI
functionality, basing it upon the TargetLowering abstraction and other
information in the target independent code generator.

The third step of the conversion adds support to all TargetMachines to
register custom analysis passes. This allows building those passes with
access to TargetLowering or other target-specific classes, and it also
allows each target to customize the set of analysis passes desired in
the pass manager. The baseline LLVMTargetMachine implements this
interface to add the BasicTTI pass to the pass manager, and all of the
tools that want to support target-aware TTI passes call this routine on
whatever target machine they end up with to add the appropriate passes.

The fourth step of the conversion created target-specific TTI analysis
passes for the X86 and ARM backends. These passes contain the custom
logic that was previously in their extensions of the
ScalarTargetTransformInfo and VectorTargetTransformInfo interfaces.
I separated them into their own file, as now all of the interface bits
are private and they just expose a function to create the pass itself.
Then I extended these target machines to set up a custom set of analysis
passes, first adding BasicTTI as a fallback, and then adding their
customized TTI implementations.

The fourth step required logic that was shared between the target
independent layer and the specific targets to move to a different
interface, as they no longer derive from each other. As a consequence,
a helper functions were added to TargetLowering representing the common
logic needed both in the target implementation and the codegen
implementation of the TTI pass. While technically this is the only
change that could have been committed separately, it would have been
a nightmare to extract.

The final step of the conversion was just to delete all the old
boilerplate. This got rid of the ScalarTargetTransformInfo and
VectorTargetTransformInfo classes, all of the support in all of the
targets for producing instances of them, and all of the support in the
tools for manually constructing a pass based around them.

Now that TTI is a relatively normal analysis group, two things become
straightforward. First, we can sink it into lib/Analysis which is a more
natural layer for it to live. Second, clients of this interface can
depend on it *always* being available which will simplify their code and
behavior. These (and other) simplifications will follow in subsequent
commits, this one is clearly big enough.

Finally, I'm very aware that much of the comments and documentation
needs to be updated. As soon as I had this working, and plausibly well
commented, I wanted to get it committed and in front of the build bots.
I'll be doing a few passes over documentation later if it sticks.

Commits to update DragonEgg and Clang will be made presently.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171681 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcRegisterInfo.cpp
parcTargetMachine.h
argetInfo/SparcTargetInfo.cpp
a1514e24cc24b050f53a12650e047799358833a1 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort includes for all of the .h files under the 'lib' tree. These were
missed in the first pass because the script didn't yet handle include
guards.

Note that the script is now able to handle all of these headers without
manual edits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169224 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.h
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parcAsmPrinter.cpp
parcFrameLowering.cpp
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
parcTargetMachine.cpp
270483466124fe1e19d5439e958fef63cebd43cd 24-Oct-2012 Nadav Rotem <nrotem@apple.com> Implement a basic VectorTargetTransformInfo interface to be used by the loop and bb vectorizers for modeling the cost of instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166593 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
cbd9a19b5d6ff93efa82c467508ede78b8af3bac 19-Oct-2012 Nadav Rotem <nrotem@apple.com> Reapply the TargerTransformInfo changes, minus the changes to LSR and Lowerinvoke.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166248 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
3b9a911efcf280950f878a050728450423875639 18-Oct-2012 Bob Wilson <bob.wilson@apple.com> Temporarily revert the TargetTransform changes.

The TargetTransform changes are breaking LTO bootstraps of clang. I am
working with Nadav to figure out the problem, but I am reverting it for now
to get our buildbots working.

This reverts svn commits: 165665 165669 165670 165786 165787 165997
and I have also reverted clang svn 165741

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166168 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
e3d0e86919730784faaddcb5d9b0257c39b0804b 11-Oct-2012 Nadav Rotem <nrotem@apple.com> Add a new interface to allow IR-level passes to access codegen-specific information.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165665 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
3574eca1b02600bac4e625297f4ecf745f4c4f32 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
parcISelLowering.cpp
parcTargetMachine.cpp
parcTargetMachine.h
02c63803e5ca3132478a984eae54ad2e3919cb4b 24-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add missing SDNP properties on the flushw node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162515 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
e76c903bd2233159910ee6ed236390955714e07d 06-Aug-2012 Roman Divacky <rdivacky@freebsd.org> Remove empty overrides of processFunctionBeforeFrameFinalized().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161328 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
56cb2298663017eb77aa4f4dda8db7ecd1b58173 19-Jul-2012 Bill Wendling <isanbard@gmail.com> Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160477 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
564fbf6aff8fb95646a1290078a37c2d4dbe629f 02-Jul-2012 Bob Wilson <bob.wilson@apple.com> Add all codegen passes to the PassManager via TargetPassConfig.

This is a preliminary step toward having TargetPassConfig be able to
start and stop the compilation at specified passes for unit testing
and debugging. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159567 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
0518fca843ff87d069ecb07fc00d306c1f587d58 26-Jun-2012 Jack Carter <jcarter@mips.com> There are a number of generic inline asm operand modifiers that
up to r158925 were handled as processor specific. Making them
generic and putting tests for these modifiers in the CodeGen/Generic
directory caused a number of targets to fail.

This commit addresses that problem by having the targets call
the generic routine for generic modifiers that they don't currently
have explicit code for.

For now only generic print operands 'c' and 'n' are supported.vi


Affected files:

test/CodeGen/Generic/asm-large-immediate.ll
lib/Target/PowerPC/PPCAsmPrinter.cpp
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
lib/Target/ARM/ARMAsmPrinter.cpp
lib/Target/XCore/XCoreAsmPrinter.cpp
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/Hexagon/HexagonAsmPrinter.cpp
lib/Target/CellSPU/SPUAsmPrinter.cpp
lib/Target/Sparc/SparcAsmPrinter.cpp
lib/Target/MBlaze/MBlazeAsmPrinter.cpp
lib/Target/Mips/MipsAsmPrinter.cpp

MSP430 isn't represented because it did not even run with
the long existing 'c' modifier and it was not apparent what
needs to be done to get it inline asm ready.

Contributer: Jack Carter



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159203 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
d5c407d2d01ff8797c29343e4da5f765fe52fb5f 24-Jun-2012 NAKAMURA Takumi <geek4civic@gmail.com> llvm/lib: [CMake] Add explicit dependency to intrinsics_gen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159112 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
95a9d937728ca9cf2bf44f86ff1184df318b3bd7 06-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Round 2 of dead private variable removal.

LLVM is now -Wunused-private-field clean except for
- lib/MC/MCDisassembler/Disassembler.h. Not sure why it keeps all those unaccessible fields.
- gtest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158096 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.h
f152fe8d487c46873bbdd4abab43200f783e978b 01-Jun-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Switch some getAliasSet clients to MCRegAliasIterator.

MCRegAliasIterator can optionally visit the register itself, allowing
for simpler code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157837 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
d2ea0e10cbd158c93fb870cdd03001b9cd1156b8 25-May-2012 Justin Holewinski <jholewinski@nvidia.com> Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall
to pass around a struct instead of a large set of individual values. This
cleans up the interface and allows more information to be added to the struct
for future targets without requiring changes to each and every target.

NV_CONTRIB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157479 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
ed277f3eeb830e7cb2c9313b4fb8e751f16a0621 04-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Initialize SparcInstrInfo before SparcTargetLowering.

The TargetLowering construction needs to use a valid TargetRegisterInfo
instance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156146 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
7c4ce30ea6a9d0410f306e805403dd224c3df65c 01-May-2012 Bill Wendling <isanbard@gmail.com> Change the PassManager from a reference to a pointer.

The TargetPassManager's default constructor wants to initialize the PassManager
to 'null'. But it's illegal to bind a null reference to a null l-value. Make the
ivar a pointer instead.
PR12468


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155902 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
c909950c384e8234a7b3c5a76b7f79e3f7012ceb 20-Apr-2012 Craig Topper <craig.topper@gmail.com> Convert some uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155186 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.cpp
26c8dcc692fb2addd475446cfff24d6a4e958bca 04-Apr-2012 Rafael Espindola <rafael.espindola@gmail.com> Always compute all the bits in ComputeMaskedBits.
This allows us to keep passing reduced masks to SimplifyDemandedBits, but
know about all the bits if SimplifyDemandedBits fails. This allows instcombine
to simplify cases like the one in the included testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154011 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
4e02f23de24375294005f88b5254a3775d39fcb2 27-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune some includes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153502 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.h
63bd926a41f476399cb62948484511261842489f 22-Mar-2012 Craig Topper <craig.topper@gmail.com> Remove some unnecessary forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153245 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.h
79aa3417eb6f58d668aadfedf075240a41d35a26 17-Mar-2012 Craig Topper <craig.topper@gmail.com> Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152997 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.h
parcInstrInfo.h
parcRegisterInfo.cpp
parcTargetMachine.cpp
c5eaae4e9bc75b203b3a9922b480729bc4f340e2 11-Mar-2012 Craig Topper <craig.topper@gmail.com> Convert more static tables of registers used by calling convention to uint16_t to reduce space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152538 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b78ca423844f19f4a838abb49b4b4fa7ae499707 11-Mar-2012 Craig Topper <craig.topper@gmail.com> Use uint16_t to store registers and opcode in static tables in the target specific backends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152537 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
e4fd907e72a599eddfa7a81eac4366b5b82523e3 04-Mar-2012 Craig Topper <craig.topper@gmail.com> Use uint16_t to store register overlaps to reduce static data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152001 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
015f228861ef9b337366f92f637d4e8d624bb006 04-Mar-2012 Craig Topper <craig.topper@gmail.com> Use uint16_t to store registers in callee saved register tables to reduce size of static data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151996 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
4bfcd4acbc7d12aa55f8de9af84a38422f0f6d83 28-Feb-2012 Evan Cheng <evan.cheng@apple.com> Re-commit r151623 with fix. Only issue special no-return calls if it's a direct call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151645 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
20bd5296cec8d8d597ab9db2aca7346a88e580c8 28-Feb-2012 Daniel Dunbar <daniel@zuster.org> Revert r151623 "Some ARM implementaions, e.g. A-series, does return stack prediction. ...", it is breaking the Clang build during the Compiler-RT part.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151630 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
ec52aaa12f57896fc806e849fa21a61603050ac4 28-Feb-2012 Evan Cheng <evan.cheng@apple.com> Some ARM implementaions, e.g. A-series, does return stack prediction. That is,
the processor keeps a return addresses stack (RAS) which stores the address
and the instruction execution state of the instruction after a function-call
type branch instruction.

Calling a "noreturn" function with normal call instructions (e.g. bl) can
corrupt RAS and causes 100% return misprediction so LLVM should use a
unconditional branch instead. i.e.
mov lr, pc
b _foo
The "mov lr, pc" is issued in order to get proper backtrace.

rdar://8979299


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151623 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
b0934ab7d811e23bf530371976b8b35f3242169c 19-Feb-2012 Ahmed Charles <ace2001ac@gmail.com> Remove dead code. Improve llvm_unreachable text. Simplify some control flow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
31d157ae1ac2cd9c787dc3c1d28e64c682803844 18-Feb-2012 Jia Liu <proljc@gmail.com> Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150878 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.h
CTargetDesc/SparcMCTargetDesc.cpp
parc.td
parcCallingConv.td
parcFrameLowering.cpp
parcFrameLowering.h
parcInstrFormats.td
parcInstrInfo.cpp
parcInstrInfo.h
parcInstrInfo.td
parcMachineFunctionInfo.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
parcRegisterInfo.td
parcSubtarget.cpp
parcSubtarget.h
bc2198133a1836598b54b943420748e75d5dea94 07-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149961 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
655b8de7b2ab773a977e0c524307e71354d8af29 05-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149814 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
061efcfb3e79899493d857f49e50d09f29037e0a 04-Feb-2012 Andrew Trick <atrick@apple.com> TargetPassConfig: confine the MC configuration to TargetMachine.

Passes prior to instructon selection are now split into separate configurable stages.
Header dependencies are simplified.
The bulk of this diff is simply removal of the silly DisableVerify flags.

Sorry for the target header churn. Attempting to stabilize them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149754 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
843ee2e6a46b2b2d74a84c2eea68dec35cb359cc 03-Feb-2012 Andrew Trick <atrick@apple.com> Added TargetPassConfig. The first little step toward configuring codegen passes.

Allows command line overrides to be centralized in LLVMTargetMachine.cpp.
LLVMTargetMachine can intercept common passes and give precedence to command line overrides.
Allows adding "internal" target configuration options without touching TargetOptions.
Encapsulates the PassManager.
Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs.
Allows modifying the target configuration hooks without rebuilding the world.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149672 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 20-Jan-2012 David Blaikie <dblaikie@gmail.com> More dead code removal (using -Wunreachable-code)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
31867660cb81ea2b1d1a6ffa7d09c91acb754a8b 18-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add a CoveredBySubRegs property to Register descriptions.

When set, this bit indicates that a register is completely defined by
the value of its sub-registers.

Use the CoveredBySubRegs property to infer which super-registers are
call-preserved given a list of callee-saved registers. For example, the
ARM registers D8-D15 are callee-saved. This now automatically implies
that Q4-Q7 are call-preserved.

Conversely, Win64 callees save XMM6-XMM15, but the corresponding
YMM6-YMM15 registers are not call-preserved because they are not fully
defined by their sub-registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148363 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
e4ad58272970ecd850d233862f40a72d15649639 10-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Fix some leftover control reaches end of non-void function warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147874 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcInstrInfo.cpp
2bd335470f8939782f3df7f6180282d3825d4f09 10-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unnecessary default cases in switches that cover all enum values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcInstrInfo.cpp
f321e1075eabae96f62b1f2570d9dee5d10b8200 07-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove VectorExtras. This unused helper was written for a type of API that is discouraged now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147738 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
55caf9c60a6593b232db80eb961cbffb6e15a724 25-Dec-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Implement emitFrameIndexDebugValue and getDebugValue Location hooks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147269 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcInstrInfo.h
cfb75fba735edd44841eb21c72c3a9736a7d9af2 20-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Fix up the CMake build for the new files added in r146960, they're
likely to stay either way that discussion ends up resolving itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146966 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
2d24e2a396a1d211baaeedf32148a3b657240170 20-Dec-2011 David Blaikie <dblaikie@gmail.com> Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
parcMachineFunctionInfo.cpp
parcMachineFunctionInfo.h
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
63974b2144c87c962effdc0508c27643c8ad98b6 13-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Initial CodeGen support for CTTZ/CTLZ where a zero input produces an
undefined result. This adds new ISD nodes for the new semantics,
selecting them when the LLVM intrinsic indicates that the undef behavior
is desired. The new nodes expand trivially to the old nodes, so targets
don't actually need to do anything to support these new nodes besides
indicating that they should be expanded. I've done this for all the
operand types that I could figure out for all the targets. Owners of
various targets, please review and let me know if any of these are
incorrect.

Note that the expand behavior is *conservatively correct*, and exactly
matches LLVM's current behavior with these operations. Ideally this
patch will not change behavior in any way. For example the regtest suite
finds the exact same instruction sequences coming out of the code
generator. That's why there are no new tests here -- all of this is
being exercised by the existing test suite.

Thanks to Duncan Sands for reviewing the various bits of this patch and
helping me get the wrinkles ironed out with expanding for each target.
Also thanks to Chris for clarifying through all the discussions that
this is indeed the approach he was looking for. That said, there are
likely still rough spots. Further review much appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146466 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b0c594fd422417e1e290da166b566c7bee74644b 12-Dec-2011 Daniel Dunbar <daniel@zuster.org> LLVMBuild: Introduce a common section which currently has a list of the
subdirectories to traverse into.
- Originally I wanted to avoid this and just autoscan, but this has one key
flaw in that new subdirectories can not automatically trigger a rerun of the
llvm-build tool. This is particularly a pain when switching back and forth
between trees where one has added a subdirectory, as the dependencies will
tend to be wrong. This will also eliminates FIXME implicitly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146436 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
4ab406d7fc06b1272d02cd8be46f0c5ebe51a3da 12-Dec-2011 Daniel Dunbar <daniel@zuster.org> LLVMBuild: Remove trailing newline, which irked me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146409 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
CTargetDesc/LLVMBuild.txt
argetInfo/LLVMBuild.txt
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd 07-Dec-2011 Evan Cheng <evan.cheng@apple.com> Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.

For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcAsmPrinter.cpp
parcInstrInfo.cpp
80b1ae92922202c197078038c4229045cb1e295f 03-Dec-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc CodeGen: Fix AnalyzeBranch for PR 10282. Removing addSuccessor() since
AnalyzeBranch doesn't change the successor, just the order.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145779 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 02-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Move global variables in TargetMachine into new TargetOptions class. As an API
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.

One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
d782bae970e888572f0458ac05369bbd7752f05a 29-Nov-2011 Daniel Dunbar <daniel@zuster.org> build/CMake: Finish removal of add_llvm_library_dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145420 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
CTargetDesc/CMakeLists.txt
argetInfo/CMakeLists.txt
b95fc31aa2e5a0a0b9ee1909d1cb949577c5aa16 16-Nov-2011 Evan Cheng <evan.cheng@apple.com> Sink codegen optimization level into MCCodeGenInfo along side relocation model
and code model. This eliminates the need to pass OptLevel flag all over the
place and makes it possible for any codegen pass to use this information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144788 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcTargetMachine.cpp
parcTargetMachine.h
b8ebca83f4dff04ba21cc97673003f0bd35a2e49 12-Nov-2011 Daniel Dunbar <daniel@zuster.org> build: Attempt to rectify inconsistencies between CMake and LLVMBuild versions of explicit dependencies.
- The hope is that we have a tool/test to verify these are accurate (and tight) soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144444 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/LLVMBuild.txt
5ed5506f18fcc0a277c863f7a21b39f58e892ca5 11-Nov-2011 Daniel Dunbar <daniel@zuster.org> LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144344 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
affc6cf9d2b2b74532ce82027ac4524d1e29a658 10-Nov-2011 Daniel Dunbar <daniel@zuster.org> llvm-build: Add --native-target and --enable-targets options, and add logic to
handle defining the "magic" target related components (like native,
nativecodegen, and engine).
- We still require these components to be in the project (currently in
lib/Target) so that we have a place to document them and hopefully make it
more obvious that they are "magic".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144253 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
c352caf168094c83f05a8010ca14c2e643dbf618 10-Nov-2011 Daniel Dunbar <daniel@zuster.org> llvm-build: Add an explicit component type to represent targets.
- Gives us a place to hang target specific metadata (like whether the target has a JIT).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144250 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
d752e0f7e64585839cb3a458ef52456eaebbea3c 08-Nov-2011 Pete Cooper <peter_cooper@apple.com> Added invariant field to the DAG.getLoad method and changed all calls.

When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144100 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
590853667345d6fb191764b9d0bd2ff13589e3a3 06-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Replace (Lower|Upper)caseString in favor of StringRef's newest methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143891 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
b0d9ce567f5aee3af94c290d7cd52b1582c27b4f 04-Nov-2011 Daniel Dunbar <daniel@zuster.org> build/cmake: Use tblgen macro directly instead of llvm_tablegen, which just
added a layer of indirection with no value (not even conciseness).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143727 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
a3a2dfd4a2a8265a9a0c962cb776e2e6ba123956 03-Nov-2011 Daniel Dunbar <daniel@zuster.org> build: Add initial cut at LLVMBuild.txt files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143634 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
CTargetDesc/LLVMBuild.txt
argetInfo/LLVMBuild.txt
de8f33c199f3bf2049b0b732169f2bd8717469c6 06-Oct-2011 Peter Collingbourne <peter@pcc.me.uk> Build system infrastructure for multiple tblgens.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141266 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3 24-Aug-2011 Evan Cheng <evan.cheng@apple.com> Move TargetRegistry and TargetSelect from Target to Support where they belong.
These are strictly utilities for registering targets and components.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcSubtarget.cpp
parcTargetMachine.cpp
argetInfo/SparcTargetInfo.cpp
7801136b95d1fbe515b9655b73ada39b05a33559 23-Aug-2011 Evan Cheng <evan.cheng@apple.com> Some refactoring so TargetRegistry.h no longer has to include any files
from MC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138367 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
81fd0ba8ab153b8344527a461545dbd87642ed83 01-Aug-2011 Chandler Carruth <chandlerc@gmail.com> Actually finish switching to the new system for Target sublibrary
TableGen deps introduced in r136023. This completes the fixing that
dgregor started in r136621. Sorry for missing these the first time
around.

This should fix some of the random race-condition failures people are
still seeing with CMake.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136643 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/CMakeLists.txt
ac03e736c77bcf7e8deb515fc16a7e55d343dc8d 29-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rewrite the CMake build to use explicit dependencies between libraries,
specified in the same file that the library itself is created. This is
more idiomatic for CMake builds, and also allows us to correctly specify
dependencies that are missed due to bugs in the GenLibDeps perl script,
or change from compiler to compiler. On Linux, this returns CMake to
a place where it can relably rebuild several targets of LLVM.

I have tried not to change the dependencies from the ones in the current
auto-generated file. The only places I've really diverged are in places
where I was seeing link failures, and added a dependency. The goal of
this patch is not to start changing the dependencies, merely to move
them into the correct location, and an explicit form that we can control
and change when necessary.

This also removes a serialization point in the build because we don't
have to scan all the libraries before we begin building various tools.
We no longer have a step of the build that regenerates a file inside the
source tree. A few other associated cleanups fall out of this.

This isn't really finished yet though. After talking to dgregor he urged
switching to a single CMake macro to construct libraries with both
sources and dependencies in the arguments. Migrating from the two macros
to that style will be a follow-up patch.

Also, llvm-config is still generated with GenLibDeps.pl, which means it
still has slightly buggy dependencies. The internal CMake
'llvm-config-like' macro uses the correct explicitly specified
dependencies however. A future patch will switch llvm-config generation
(when using CMake) to be based on these deps as well.

This may well break Windows. I'm getting a machine set up now to dig
into any failures there. If anyone can chime in with problems they see
or ideas of how to solve them for Windows, much appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136433 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
CTargetDesc/CMakeLists.txt
argetInfo/CMakeLists.txt
14648468011c92a4210f8118721d58c25043daf8 28-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Code generation for 'fence' instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136283 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b35552d440581265a982d7523c33e7466437bfb0 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Clean up a pile of hacks in our CMake build relating to TableGen.

The first problem to fix is to stop creating synthetic *Table_gen
targets next to all of the LLVM libraries. These had no real effect as
CMake specifies that add_custom_command(OUTPUT ...) directives (what the
'tablegen(...)' stuff expands to) are implicitly added as dependencies
to all the rules in that CMakeLists.txt.

These synthetic rules started to cause problems as we started more and
more heavily using tablegen files from *subdirectories* of the one where
they were generated. Within those directories, the set of tablegen
outputs was still available and so these synthetic rules added them as
dependencies of those subdirectories. However, they were no longer
properly associated with the custom command to generate them. Most of
the time this "just worked" because something would get to the parent
directory first, and run tablegen there. Once run, the files existed and
the build proceeded happily. However, as more and more subdirectories
have started using this, the probability of this failing to happen has
increased. Recently with the MC refactorings, it became quite common for
me when touching a large enough number of targets.

To add insult to injury, several of the backends *tried* to fix this by
adding explicit dependencies back to the parent directory's tablegen
rules, but those dependencies didn't work as expected -- they weren't
forming a linear chain, they were adding another thread in the race.

This patch removes these synthetic rules completely, and adds a much
simpler function to declare explicitly that a collection of tablegen'ed
files are referenced by other libraries. From that, we can add explicit
dependencies from the smaller libraries (such as every architectures
Desc library) on this and correctly form a linear sequence. All of the
backends are updated to use it, sometimes replacing the existing attempt
at adding a dependency, sometimes adding a previously missing dependency
edge.

Please let me know if this causes any problems, but it fixes a rather
persistent and problematic source of build flakiness on our end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136023 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
CTargetDesc/CMakeLists.txt
7f8dff65717b1e4090ba4a648f9ec4f037a66c1e 23-Jul-2011 Evan Cheng <evan.cheng@apple.com> createXXXMCCodeGenInfo should be static.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135826 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
e78085a3c03de648a481e9751c3094c517bd7123 22-Jul-2011 Evan Cheng <evan.cheng@apple.com> Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,
InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135812 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
34ad6db8b958fdc0d38e122edf753b5326e69b03 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> - Move CodeModel from a TargetMachine global option to MCCodeGenInfo.
- Introduce JITDefault code model. This tells targets to set different default
code model for JIT. This eliminates the ugly hack in TargetMachine where
code model is changed after construction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135580 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcTargetMachine.cpp
parcTargetMachine.h
439661395fd2a2a832dba01c65bc88718528313c 19-Jul-2011 Evan Cheng <evan.cheng@apple.com> Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from
TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcTargetMachine.cpp
parcTargetMachine.h
2d28617de2b0b731c08d1af9e830f31e14ac75b4 19-Jul-2011 Evan Cheng <evan.cheng@apple.com> Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
better location welcome).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
0e6a052331f674dd70e28af41f654a7874405eab 18-Jul-2011 Evan Cheng <evan.cheng@apple.com> Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down
to MCRegisterInfo. Also initialize the mapping at construction time.

This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCTargetDesc.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
1be0e271a07925b928ba89848934f1ea6f1854e2 15-Jul-2011 Evan Cheng <evan.cheng@apple.com> Move some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatest
solution but it is a small step towards removing the horror that is
TargetAsmInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135237 91177308-0d34-0410-b5e6-96231b3b80d8
CTargetDesc/SparcMCAsmInfo.cpp
1abf2cb59b8d63415780a03329307c0997b2670c 15-Jul-2011 Evan Cheng <evan.cheng@apple.com> Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
CTargetDesc/CMakeLists.txt
CTargetDesc/SparcMCAsmInfo.cpp
CTargetDesc/SparcMCAsmInfo.h
CTargetDesc/SparcMCTargetDesc.cpp
parcMCAsmInfo.cpp
parcMCAsmInfo.h
parcTargetMachine.cpp
c60f9b752381baa6c4b80c0739034660f1748c84 14-Jul-2011 Evan Cheng <evan.cheng@apple.com> Next round of MC refactoring. This patch factor MC table instantiations, MC
registeration and creation code into XXXMCDesc libraries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135184 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
CTargetDesc/CMakeLists.txt
CTargetDesc/Makefile
CTargetDesc/SparcMCTargetDesc.cpp
CTargetDesc/SparcMCTargetDesc.h
akefile
parc.h
parcInstrInfo.cpp
parcRegisterInfo.cpp
parcSubtarget.cpp
59ee62d2418df8db499eca1ae17f5900dc2dcbba 11-Jul-2011 Evan Cheng <evan.cheng@apple.com> - Eliminate MCCodeEmitter's dependency on TargetMachine. It now uses MCInstrInfo
and MCSubtargetInfo.
- Added methods to update subtarget features (used when targets automatically
detect subtarget features or switch modes).
- Teach X86Subtarget to update MCSubtargetInfo features bits since the
MCSubtargetInfo layer can be shared with other modules.
- These fixes .code 16 / .code 32 support since mode switch is updated in
MCSubtargetInfo so MC code emitter can do the right thing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134884 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcSubtarget.cpp
ffc0e73046f737d75e0a62b3a83ef19bcef111e3 09-Jul-2011 Evan Cheng <evan.cheng@apple.com> Change createAsmParser to take a MCSubtargetInfo instead of triple,
CPU, and feature string. Parsing some asm directives can change
subtarget state (e.g. .code 16) and it must be reflected in other
modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance
must be shared.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134795 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
33390848a7eca75301d04a59b89b516d83e19ee0 08-Jul-2011 Cameron Zwarich <zwarich@apple.com> Add an intrinsic and codegen support for fused multiply-accumulate. The intent
is to use this for architectures that have a native FMA instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134742 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ebdeeab812beec0385b445f3d4c41a114e0d972f 08-Jul-2011 Evan Cheng <evan.cheng@apple.com> Eliminate asm parser's dependency on TargetMachine:
- Each target asm parser now creates its own MCSubtatgetInfo (if needed).
- Changed AssemblerPredicate to take subtarget features which tablegen uses
to generate asm matcher subtarget feature queries. e.g.
"ModeThumb,FeatureThumb2" is translated to
"(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134678 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcTargetMachine.cpp
0ddff1b5359433faf2eb1c4ff5320ddcbd42f52f 07-Jul-2011 Evan Cheng <evan.cheng@apple.com> Compute feature bits at time of MCSubtargetInfo initialization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134606 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcSubtarget.h
385e930d55f3ecd3c9538823dfa5896a12461845 02-Jul-2011 Evan Cheng <evan.cheng@apple.com> Rename XXXGenSubtarget.inc to XXXGenSubtargetInfo.inc for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134281 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
parcSubtarget.cpp
parcSubtarget.h
5b1b4489cf3a0f56f8be0673fc5cc380a32d277b 01-Jul-2011 Evan Cheng <evan.cheng@apple.com> Rename TargetSubtarget to TargetSubtargetInfo for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134259 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcSubtarget.h
94214703d97d8d9dfca88174ffc7e94820a85e62 01-Jul-2011 Evan Cheng <evan.cheng@apple.com> - Added MCSubtargetInfo to capture subtarget features and scheduling
itineraries.
- Refactor TargetSubtarget to be based on MCSubtargetInfo.
- Change tablegen generated subtarget info to initialize MCSubtargetInfo
and hide more details from targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134257 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcSubtarget.h
4db3cffe94a5285239cc0056f939c6b74a5ca0b6 01-Jul-2011 Evan Cheng <evan.cheng@apple.com> Hide the call to InitMCInstrInfo into tblgen generated ctor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134244 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
276365dd4bc0c2160f91fd8062ae1fc90c86c324 30-Jun-2011 Evan Cheng <evan.cheng@apple.com> Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name to
be the first encoded as the first feature. It then uses the CPU name to look up
features / scheduling itineray even though clients know full well the CPU name
being used to query these properties.

The fix is to just have the clients explictly pass the CPU name!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134127 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
158bf50787f1881fbdb6f62761d15aae0d3862f6 29-Jun-2011 Eric Christopher <echristo@apple.com> Remove getRegClassForInlineAsmConstraint from sparc.

Part of rdar://9643582


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134083 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
d5b03f252c0db6b49a242abab63d7c5a260fceae 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134030 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcRegisterInfo.cpp
6844f7bcdec8c2691c8d1067d90e4a02cf658c27 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> Hide more details in tablegen generated MCRegisterInfo ctor function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134027 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
22fee2dff4c43b551aefa44a96ca74fcade6bfac 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> Merge XXXGenRegisterNames.inc into XXXGenRegisterInfo.inc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134024 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
parc.h
parcInstrInfo.cpp
e837dead3c8dc3445ef6a0e2322179c57e264a13 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
73f50d9bc3bd46cc0abeba9bb0d46977ba1aea42 27-Jun-2011 Evan Cheng <evan.cheng@apple.com> Merge XXXGenRegisterDesc.inc XXXGenRegisterNames.inc XXXGenRegisterInfo.h.inc
into XXXGenRegisterInfo.inc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133922 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
parc.h
parcRegisterInfo.cpp
parcRegisterInfo.h
a347f85dbeee37a7f2bb68df1a7d4cdfbb7b576d 24-Jun-2011 Evan Cheng <evan.cheng@apple.com> Starting to refactor Target to separate out code that's needed to fully describe
target machine from those that are only needed by codegen. The goal is to
sink the essential target description into MC layer so we can start building
MC based tools without needing to link in the entire codegen.

First step is to refactor TargetRegisterInfo. This patch added a base class
MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to
separate register description from the rest of the stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133782 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
parcRegisterInfo.cpp
f28987b76e758b5f2fcc2c5d2c8e073df54ca91e 16-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Use set operations instead of plain lists to enumerate register classes.

This simplifies many of the target description files since it is common
for register classes to be related or contain sequences of numbered
registers.

I have verified that this doesn't change the files generated by TableGen
for ARM and X86. It alters the allocation order of MBlaze GPR and Mips
FGR32 registers, but I believe the change is benign.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133105 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
2a9d1ca9c244aeac98044a5fc9a081ff3df7b2ff 09-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove custom allocation order boilerplate that is no longer needed.

The register allocators automatically filter out reserved registers and
place the callee saved registers last in the allocation order, so custom
methods are no longer necessary just for that.

Some targets still use custom allocation orders:

ARM/Thumb: The high registers are removed from GPR in thumb mode. The
NEON allocation orders prefer to use non-VFP2 registers first.

X86: The GR8 classes omit AH-DH in x86-64 mode to avoid REX trouble.

SystemZ: Some of the allocation orders are omitting R12 aliases without
explanation. I don't understand this target well enough to fix that. It
looks like all the boilerplate could be removed by reserving the right
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132781 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
471e4224809f51652c71f319532697a879a75a0d 09-Jun-2011 Eric Christopher <echristo@apple.com> Add a parameter to CCState so that it can access the MachineFunction.

No functional change.

Part of PR6965


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
6e032942cf58d1c41f88609a1cec74eb74940ecd 30-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Use the dwarf->llvm mapping to print register names in the cfi
directives.

Fixes PR9826.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132317 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
03dc1868d15f6113e93827e7812d817a3ec2ec3a 29-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix to match the dwarf register numbers that gdb uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132278 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
fc5d305597ea6336d75bd7f3b741e8d57d6a5105 06-May-2011 Eli Friedman <eli.friedman@gmail.com> Make the logic for determining function alignment more explicit. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131012 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
d2189bf12af59fa59aef375ce05d4ba9122ca287 03-May-2011 Benjamin Kramer <benny.kra@googlemail.com> Remove unused variables caught by GCC's -Wunused-but-set-variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130755 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
68e6beeccc0b9ac2e8d3687a8a5b7d4b172edca1 22-Feb-2011 Devang Patel <dpatel@apple.com> Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns."
In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body.
This requires some coordination with debugger to get this working.
- The debugger needs to be aware of prolog_end attribute attached with line table entries.
- The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126155 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
58269b973256bf2436cac0f047aa277fe4bc01dd 21-Feb-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Generate correct Sparc32 ABI compliant code for functions that return a struct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126108 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
00d78f1348a5980a276bed8f9be09ce2412a6a12 20-Feb-2011 Oscar Fuentes <ofv@wanadoo.es> Use explicit add_subdirectory's for LLVM target sublibraries instead
of testing for its presence at cmake time.

This way the build automatically regenerates the makefiles when a svn
update brings in a new sublibrary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126068 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
a901129169194881a78b7fd8953e09f55b846d10 16-Feb-2011 Stuart Hastings <stuart@apple.com> Swap VT and DebugLoc operands of getExtLoad() for consistency with
other getNode() methods. Radar 9002173.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125665 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
cc5bd4a56140f8c7381afa686f28b361fd540436 12-Feb-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Prevent IMPLICIT_DEF/KILL to become a delay filler instruction in SPARC backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125444 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
e9a7ea68653689966417443b8ac2528c1d9d3ccf 31-Jan-2011 Devang Patel <dpatel@apple.com> Keep track of incoming argument's location while emitting LiveIns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
8184e289db45acd0bd8bbf7087f7a1274ef55f15 22-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Pass sret arguments through the stack instead of through registers in Sparc backend. It makes the code generated more compliant with the sparc32 ABI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124030 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
parcMachineFunctionInfo.h
e105a3901fecce76e789566ecbfbc87a5b4ce899 22-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Added ICC, FCC as uses of movcc instruction to generate correct code when -mattr=v9 is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124027 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
fc3faa75cbadd8a1020941ec85adfda1d2f49688 21-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc backend:
Rename FLUSH to FLUSHW.
Output "ta 3" instead of a "flushw" instruction if v8 instruction set is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123997 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
46713296e0da8f413b94b9c2b82b079e6e3bd6e2 21-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Implement support for byval arguments in Sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123974 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
71e39dac0ce9676dd3d0a92164167e18499d40fa 20-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc backend: Implements a delay slot filler that attempt to fill delay slots
with useful instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123884 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.td
687ae9606bb983659700b133963f48c9a06aec03 18-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> SPARC backend: Modified LowerCall and LowerFormalArguments so that they use CallingConv assignments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123749 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
c1a62834a2ad33a80ca2b1f3a549f4f7806cd320 16-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Implement AnalyzeBranch in Sparc Backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123561 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
4f28c1c71450c711e96aa283de53739d8b4504cd 13-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Teach frame lowering to ignore debug values after the terminators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123399 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameLowering.cpp
860b64cb1efba110bf81bcc243a6fbaae4c655a4 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Implement RETURNADDR and FRAMEADDR lowering in SPARC backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123310 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
c178308b23f796b6f5c15c8b3f742cc7b3336d6b 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to
ensure %o7 is not assigned as the destination of getpcx instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123304 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.td
7d29ffbe5b091fae03afd264d8c8b0090c7a45f4 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Fix SPARC backend call instruction so that arguments passed through registers
are correctly marked as used instead of passing all possible argument registers
as used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123301 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.td
f27df33b02a85a030aaa4476aee7d1e8fe5921b2 11-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123281 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
7af6fad0a73f33a6782166676d48073ce8565c47 10-Jan-2011 Anton Korobeynikov <asl@math.spbu.ru> Update CMake stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123171 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
16c29b5f285f375be53dabaa73e3e91107485fe4 10-Jan-2011 Anton Korobeynikov <asl@math.spbu.ru> Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123170 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameInfo.cpp
parcFrameInfo.h
parcFrameLowering.cpp
parcFrameLowering.h
parcTargetMachine.cpp
parcTargetMachine.h
12db7b68b683371a6ae464e76b4c850fa0199eeb 29-Dec-2010 Venkatraman Govindaraju <venkatra@cs.wisc.edu> SPARC backend fix: correctly passing arguments through stack

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122626 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f661277a9b26590648aca585c0572f200470290d 28-Dec-2010 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Multiple SPARC backend fixes: added Y register; updated select_cc, subx, subxcc defs/uses;
and fixed CustomInserter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122607 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.td
parcRegisterInfo.td
036609bd7d42ed1f57865969e059eb7d1eb6c392 23-Dec-2010 Chris Lattner <sabre@nondot.org> Flag -> Glue, the ongoing saga


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122513 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
f1b4eafbfec976f939ec0ea3e8acf91cef5363e3 21-Dec-2010 Chris Lattner <sabre@nondot.org> rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for
something that just glues two nodes together, even if it is
sometimes used for flags.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122310 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
bf17cfa3f904e488e898ac2e3af706fd1a892f08 23-Nov-2010 Wesley Peck <peckw@wesleypeck.com> Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119990 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
d0c38176690e9602a93a20a43f1bd084564a8116 18-Nov-2010 Anton Korobeynikov <asl@math.spbu.ru> Move hasFP() and few related hooks to TargetFrameInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119740 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
a460e4a1427260bd46171e674d0a4c41cdd6313f 15-Nov-2010 Anton Korobeynikov <asl@math.spbu.ru> Attempt to unbreak cmake-based builds

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119098 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
33464912237efaa0ed7060829e66b59055bdd48b 15-Nov-2010 Anton Korobeynikov <asl@math.spbu.ru> First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8
parcFrameInfo.cpp
parcFrameInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
1139691e3aadff751c035f38f835d436ec6cf10a 14-Nov-2010 Chris Lattner <sabre@nondot.org> move all the target's asmprinters into the main target. The piece
that should be split out is the InstPrinter (if a target is mc'ized).
This change makes all the targets be consistent.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119056 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/Makefile
smPrinter/SparcAsmPrinter.cpp
MakeLists.txt
akefile
parcAsmPrinter.cpp
1440e8b918d7116c3587cb95f4f7ac7a0a0b65ad 03-Nov-2010 Duncan Sands <baldrick@free.fr> Inside the calling convention logic LocVT is always a simple
value type, so there is no point in passing it around using
an EVT. Use the simpler MVT everywhere. Rather than trying
to propagate this information maximally in all the code that
using the calling convention stuff, I chose to do a mainly
low impact change instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
3609eb0de2f786ca6917d0388c37c23873dbd247 29-Sep-2010 Oscar Fuentes <ofv@wanadoo.es> Removed a bunch of unnecessary target_link_libraries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114999 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
52a261b3c1391c5fec399ddeb3fc6ee9541e8790 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
parcISelDAGToDAG.cpp
6229d0acb8f395552131a7015a5d1e7b2bae2111 21-Sep-2010 Chris Lattner <sabre@nondot.org> update a bunch of code to use the MachinePointerInfo version of getStore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114461 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
3d6ccfba314ed38e4506dae2781a060e9a3e07ac 21-Sep-2010 Chris Lattner <sabre@nondot.org> propagate MachinePointerInfo through various uses of the old
SelectionDAG::getExtLoad overload, and eliminate it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114446 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
d1c24ed81c43635d00ff099844a9d0614021a72b 21-Sep-2010 Chris Lattner <sabre@nondot.org> convert the targets off the non-MachinePointerInfo of getLoad.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114410 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
fcb4a8ead3cd8d9540d5eaa448af5d14a0ee341a 27-Aug-2010 Jim Grosbach <grosbach@apple.com> Simplify eliminateFrameIndex() interface back down now that PEI doesn't need
to try to re-use scavenged frame index reference registers. rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112241 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
4bb862d179486008406ec5025f925bac5493ad0d 17-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Don't call Predicate_* methods directly from Sparc target.
Modernize predicates a bit.

The Predicate_* methods are not used by TableGen any longer. They are only
emitted for the sake of legacy code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111263 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
23e70ebf352ff4938210711464c68b5a6e46e61c 17-Aug-2010 Chris Lattner <sabre@nondot.org> fix emacs language spec's, patch by Edmund Grimley-Evans!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111241 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
90c579de5a383cee278acc3f7e7b9d0a656e6a35 06-Aug-2010 Owen Anderson <resistor@mac.com> Reapply r110396, with fixes to appease the Linux buildbot gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
1f74590e9d1b9cf0f1f81a156efea73f76546e05 06-Aug-2010 Owen Anderson <resistor@mac.com> Revert r110396 to fix buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
9ccaf53ada99c63737547c0235baeb8454b04e80 06-Aug-2010 Owen Anderson <resistor@mac.com> Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
78e6e009223a38739797629ca2d217acf86dda93 17-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove the isMoveInstr() hook.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108567 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
38e59891ee4417a9be2f8146ce0ba3269e38ac21 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Don't pass StringRef by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
parcMCAsmInfo.h
600f171486708734e2b9c9c617528cfc51c16850 11-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> RISC architectures get their memory operand folding for free.

The only folding these load/store architectures can do is converting COPY into a
load or store, and the target independent part of foldMemoryOperand already
knows how to do that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108099 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
8e18a1a5cf4423dba9b8c53f2699299c514a9dc2 11-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace copyRegToReg with copyPhysReg for Sparc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108086 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
bcc8017c738e92d9c1af221b11c4916cb524184e 08-Jul-2010 Evan Cheng <evan.cheng@apple.com> Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
c9403659a98bf6487ab6fbf40b81628b5695c02e 07-Jul-2010 Dan Gohman <gohman@apple.com> Split the SDValue out of OutputArg so that SelectionDAG-independent
code can do calling-convention queries. This obviates OutputArgReg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107786 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
0d881dabc1a4e1aefad6dd38de166d8358285638 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
parcISelLowering.cpp
14152b480d09c7ca912af7c06d00b0ff3912e4f5 06-Jul-2010 Dan Gohman <gohman@apple.com> Reapply r107655 with fixes; insert the pseudo instruction into
the block before calling the expansion hook. And don't
put EFLAGS in a mbb's live-in list twice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107691 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
258c58cc6257cf61c9bdbb9c4cea67ba2691adf0 06-Jul-2010 Dan Gohman <gohman@apple.com> Revert r107655.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107668 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b81c771c0d9ab5a980caf3383932b051eafd1a39 06-Jul-2010 Dan Gohman <gohman@apple.com> Fix a bunch of custom-inserter functions to handle the case where
the pseudo instruction is not at the end of the block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107655 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ed2ae136d29dd36122d2476801e7d7a86e8301e3 03-Jul-2010 Evan Cheng <evan.cheng@apple.com> Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill slots so it's always false.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107550 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
c63a404d56320c25b9510b6b0fb3eda70d619b11 21-Jun-2010 Eric Christopher <echristo@apple.com> Remove isTwoAddress from Sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106466 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
e368b460a206fafa0d31d5d059b1779b94f7df8c 18-Jun-2010 Dan Gohman <gohman@apple.com> Eliminate unnecessary uses of getZExtValue().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
3bf912593301152b65accb9d9c37a95172f1df5a 18-Jun-2010 Stuart Hastings <stuart@apple.com> Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.

This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
6f07bd6ae8c2b11e78f351d7751d1e9b32f38a75 02-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105322 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
ca561ffcf320e9dbfafcac5efcee81471f3259c3 26-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace the SubRegSet tablegen class with a less error-prone mechanism.

A Register with subregisters must also provide SubRegIndices for adressing the
subregisters. TableGen automatically inherits indices for sub-subregisters to
minimize typing.

CompositeIndices may be specified for the weirder cases such as the XMM sub_sd
index that returns the same register, and ARM NEON Q registers where both D
subregs have ssub_0 and ssub_1 sub-subregs.

It is now required that all subregisters are named by an index, and a future
patch will also require inherited subregisters to be named. This is necessary to
allow composite subregister indices to be reduced to a single index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104704 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
b555609e73f5091bf8180c0875fb1fa6c5ad0e7a 26-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Revert "Replace the SubRegSet tablegen class with a less error-prone mechanism."

This reverts commit 104654.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104660 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
6a45d681e53a99b4c4f63e0b1664626a596a8151 26-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace the SubRegSet tablegen class with a less error-prone mechanism.

A Register with subregisters must also provide SubRegIndices for adressing the
subregisters. TableGen automatically inherits indices for sub-subregisters to
minimize typing.

CompositeIndices may be specified for the weirder cases such as the XMM sub_sd
index that returns the same register, and ARM NEON Q registers where both D
subregs have ssub_0 and ssub_1 sub-subregs.

It is now required that all subregisters are named by an index, and a future
patch will also require inherited subregisters to be named. This is necessary to
allow composite subregister indices to be reduced to a single index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104654 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
ff7a562751604a9fe13efc75bd59622244b54d35 11-May-2010 Dan Gohman <gohman@apple.com> Implement a bunch more TargetSelectionDAGInfo infrastructure.

Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8
parcSelectionDAGInfo.cpp
parcSelectionDAGInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 06-May-2010 Dan Gohman <gohman@apple.com> Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it
doesn't have to guess.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
746ad69e088176819981b4b2c5ac8dcd49f5e60e 06-May-2010 Evan Cheng <evan.cheng@apple.com> Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103193 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
af1d8ca44a18f304f207e209b3bdb94b590f86ff 01-May-2010 Dan Gohman <gohman@apple.com> Get rid of the EdgeMapping map. Instead, just check for BasicBlock
changes before doing phi lowering for switches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102809 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
1f65453d0a26d12a224f1380c71238f7b2d26e95 20-Apr-2010 Dan Gohman <gohman@apple.com> Delete an unnecessary reference to SelectionDAGISel::BB.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101824 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
d858e90f039f5fcdc2fa93035e911a5a9505cc50 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
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
parcTargetMachine.h
1e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6 17-Apr-2010 Dan Gohman <gohman@apple.com> Move per-function state out of TargetLowering subclasses and into
MachineFunctionInfo subclasses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101634 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcMachineFunctionInfo.h
53c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6 17-Apr-2010 Dan Gohman <gohman@apple.com> Add skeleton target-specific SelectionDAGInfo files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101564 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
parcSelectionDAGInfo.cpp
parcSelectionDAGInfo.h
46510a73e977273ec67747eb34cbdb43f815e451 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
parcISelLowering.cpp
e3a601b648e4cbb916e33f969a1b9d3d40b36734 08-Apr-2010 Chris Lattner <sabre@nondot.org> add newlines at end of files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100706 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
fddb7667ca4d8fe83f96b388295849281ddaa5b4 05-Apr-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100384 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
3d2251361171b1a41bdb2ac71882e69d48617f49 05-Apr-2010 Chris Lattner <sabre@nondot.org> eliminate the magic AbsoluteDebugSectionOffsets MAI hook,
which is really a property of the section being referenced.
Add a predicate to MCSection to replace it.

Yay for reduction in magic.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100367 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
b23569aff0a6d2b231cb93cc4acd0ac060ba560f 04-Apr-2010 Chris Lattner <sabre@nondot.org> Momentous day: remove the "O" member from AsmPrinter. Now all
"asm printering" happens through MCStreamer. This also
Streamerizes PIC16 debug info, which escaped my attention.

This removes a leak from LLVMTargetMachine of the 'legacy'
output stream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
7ad07c46362500f7291a92742569e94fd3538dfd 04-Apr-2010 Chris Lattner <sabre@nondot.org> convert the non-MCInstPrinter'ized EmitInstruction
implementations to use EmitRawText instead of writing
directly to "O".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100318 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
c75c028a15a13786eee585aa634b4faf694dd00a 04-Apr-2010 Chris Lattner <sabre@nondot.org> fix PrintAsmOperand and PrintAsmMemoryOperand to pass down
raw_ostream to print to.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100313 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
35c33bd772b3cfb34fdc6b5c9171f955454d0043 04-Apr-2010 Chris Lattner <sabre@nondot.org> change a ton of code to not implicitly use the "O" raw_ostream
member of AsmPrinter. Instead, pass it in explicitly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
c7f3ace20c325521c68335a1689645b43b06ddf0 02-Apr-2010 Chris Lattner <sabre@nondot.org> use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100214 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
de3e05fe33e3bc3bb1368418d7ca940ecc04b5f2 19-Mar-2010 Chris Lattner <sabre@nondot.org> tidy up


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98901 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
1b2eb0e8a6aaf034675b17be6d853cb1c666200f 13-Mar-2010 Chris Lattner <sabre@nondot.org> eliminate the now-unneeded context argument of MBB::getSymbol()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
11d53c129fc9c2a4510605ec0a1696f58750af52 13-Mar-2010 Chris Lattner <sabre@nondot.org> rearrange MCContext ownership. Before LLVMTargetMachine created it
and passing off ownership to AsmPrinter. Now MachineModuleInfo
creates it and owns it by value. This allows us to use MCSymbols
more consistently throughout the rest of the code generator, and
simplifies a bit of code. This also allows MachineFunction to
keep an MCContext reference handy, and cleans up the TargetRegistry
interfaces for AsmPrinters.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
150ae119761df40ca12f5d975a667778a7d011d7 12-Mar-2010 Jeffrey Yasskin <jyasskin@google.com> Fix LLVM build when the user specifies CPPFLAGS on the make command line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98394 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
d62f1b4168d4327c119642d28c26c836ae6717ab 12-Mar-2010 Chris Lattner <sabre@nondot.org> inline GetGlobalValueSymbol into the rest its callers and
remove it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98390 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
dff4b4c5a7cc894d3b4b6c6e779ea8f47fa50630 09-Mar-2010 Jim Grosbach <grosbach@apple.com> Change the Value argument to eliminateFrameIndex to a type-tagged value. This
is preparatory to having PEI's scavenged frame index value reuse logic
properly distinguish types of frame values (e.g., whether the value is
stack-pointer relative or frame-pointer relative).

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
eea3f7e4eeab2840b81d6c84ffdcca1477fbe265 06-Mar-2010 Chris Lattner <sabre@nondot.org> clean this up.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
7c306da505e2d7f64e160890b274a47fa0740962 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
parcISelDAGToDAG.cpp
ce931c65eee7c89cabb479dbd0a0e1bd9d034668 01-Mar-2010 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97460 91177308-0d34-0410-b5e6-96231b3b80d8
parcMachineFunctionInfo.h
1ac1c1ee5d2cbb9658356eddddc6d5ba7c622e5c 01-Mar-2010 Nathan Keynes <nkeynes@deadcoderemoval.net> Add JIT support to the TODO list (test commit)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97443 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
f3047cdbd4b729015fd6b0f64cfc5a861a6f6a2c 17-Feb-2010 Chris Lattner <sabre@nondot.org> "Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn symbols could be emitted in the same file (it was uniqued by block number, but not by function number). " Patch by Nathan Keynes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96495 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
0a3f39985b3827a02a7ce1ca5e310b68820fd26d 17-Feb-2010 Chris Lattner <sabre@nondot.org> move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter,
and add a sparc implementation that knows about delay slots. Patch by
Nathan Keynes!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
362dd0bef5437f85586c046bc53287b6fbe9c099 15-Feb-2010 Anton Korobeynikov <asl@math.spbu.ru> Move TLOF implementations to libCodegen to resolve layering violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
54a7aa84294e31140a023e0c721703a647fe227b 15-Feb-2010 David Greene <greened@obbligato.org> Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96237 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
8e089a9e4d6b7aa2b3968c38644f926f60a7c670 10-Feb-2010 Chris Lattner <sabre@nondot.org> print all the newlines at the end of instructions with
OutStreamer.AddBlankLine instead of textually.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
87c06d617917f4a388fbe9db81198e13cde3e431 04-Feb-2010 Chris Lattner <sabre@nondot.org> add support for the sparcv9-*-* target triple to turn on
64-bit sparc codegen. Patch by Nathan Keynes!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
argetInfo/SparcTargetInfo.cpp
d1ff72b8a797304f146e4293db8c814231ea8cb3 03-Feb-2010 Chris Lattner <sabre@nondot.org> rejigger the world so that EmitInstruction prints the \n at
the end of the instruction instead of expecting the caller to
do it. This currently causes the asm-verbose instruction
comments to be on the next line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95178 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
022d9e1cef7586a80a96446ae8691a37def9bbf4 03-Feb-2010 Evan Cheng <evan.cheng@apple.com> Revert 95130.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95160 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
56591ab218639d8a6e4c756ca37adaf20215c3b6 03-Feb-2010 Chris Lattner <sabre@nondot.org> refactor code so that LLVMTargetMachine creates the asmstreamer and
mccontext instead of having AsmPrinter do it. This allows other
types of MCStreamer's to be passed in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
942619695f4bd77934c09a1cae0fb39ae59edac3 02-Feb-2010 Evan Cheng <evan.cheng@apple.com> Pass callsite return type to TargetLowering::LowerCall and use that to check sibcall eligibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95130 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
745ec06ad2fa533e9ef47ce572c3a03547376224 28-Jan-2010 Chris Lattner <sabre@nondot.org> Switch MSP430, SPU, Sparc, and SystemZ to use EmitFunctionBody().

Diffstat:
6 files changed, 30 insertions(+), 284 deletions(-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94727 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
d3b31a73e8b58e837510fd429f0f4cb2b8c1a0c2 27-Jan-2010 Chris Lattner <sabre@nondot.org> use existing basic block numbers instead of recomputing
a new set of them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
4129ccdb7048ac9bc671c4f47e86e9144235000d 27-Jan-2010 Chris Lattner <sabre@nondot.org> Switch MSP430, CellSPU, SystemZ, Darwin/PPC, Alpha, and Sparc to
EmitFunctionHeader:

7 files changed, 16 insertions(+), 210 deletions(-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94630 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
0c439eb2c8397996cbccaf2798e598052d9982c8 27-Jan-2010 Evan Cheng <evan.cheng@apple.com> Eliminate target hook IsEligibleForTailCallOptimization.

Target independent isel should always pass along the "tail call" property. Change
target hook LowerCall's parameter "isTailCall" into a refernce. If the target
decides it's impossible to honor the tail call request, it should set isTailCall
to false to make target independent isel happy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94626 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
cee63322eaccc2f1067bdf5eab506e440f867da1 26-Jan-2010 Chris Lattner <sabre@nondot.org> Eliminate SetDirective, and replace it with HasSetDirective.
Default HasSetDirective to true, since most targets have it.

The targets that claim to not have it probably do, or it is
spelled differently. These include Blackfin, Mips, Alpha, and
PIC16. All of these except pic16 are normal ELF targets, so
they almost certainly have it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
f71cb015c1386ff8adc9ef0aa03fc0f0fc4a6e3e 26-Jan-2010 Chris Lattner <sabre@nondot.org> add a new MachineBasicBlock::getSymbol method, replacing
the AsmPrinter::GetMBBSymbol.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
1e459c446786f46ed865183f1c6adb17e2e8fcea 26-Jan-2010 Chris Lattner <sabre@nondot.org> don't bother setting the AsmPrinter::MF ivar, now that
AsmPrinter::SetupMachineFunction sets it. Note that systemz
and msp430 didn't. Yay for reduced inconsistency! :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94510 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
6c23b1f6febe4ef70ef3b5e95dee4e8e3ae401fb 25-Jan-2010 Chris Lattner <sabre@nondot.org> don't set value to its default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94411 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
43b5f9312d56be400af031f7487a99b75b7b0f97 24-Jan-2010 Chris Lattner <sabre@nondot.org> make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
argetInfo/Makefile
e73a31f667ad2fe03e25c97ac45b58c30d7f07c3 22-Jan-2010 Chris Lattner <sabre@nondot.org> Stop building RTTI information for *most* llvm libraries. Notable
missing ones are libsupport, libsystem and libvmcore. libvmcore is
currently blocked on bugpoint, which uses EH. Once it stops using
EH, we can switch it off.

This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
argetInfo/Makefile
8eeba35babf3114966fc4e6e8522057e46b610db 20-Jan-2010 Chris Lattner <sabre@nondot.org> revert 93934, removing the MCAsmInfo endianness bit. I can't
stomache MCAsmInfo having this, and I found a better solution to
this layering issue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93985 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
c7b8814bb4f2e6052060d6118d3bc3b66f5c5b0b 19-Jan-2010 Chris Lattner <sabre@nondot.org> give MCAsmInfo a 'has little endian' bit. This is unfortunate, but
I really want clients of the streamer to be able to say "emit this
64-bit integer" and have it get broken down right by the streamer.

I may change this in the future, we'll see how it works out.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93934 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
74bfe21b50c14c15f55ce3bd5857d65b588fae3c 19-Jan-2010 Chris Lattner <sabre@nondot.org> Now that we have everything nicely factored (e.g. asmprinter is not
doing global variable classification anymore) and hookized, sink almost
all target targets global variable emission code into AsmPrinter and out
of each target.

Some notes:

1. PIC16 does completely custom and crazy stuff, so it is not changed.
2. XCore has some custom handling for extra directives. I'll look at it next.
3. This switches linux/ppc to use .globl instead of .global. If .globl is
actually wrong, let me know and I'll fix it.
4. This makes linux/ppc get a lot of random cases right which were obviously
wrong before, it is probably now a bit healthier.
5. Blackfin will probably start getting .comm and other things that it didn't
before. If this is undesirable, it should explicitly opt out of these
things by clearing the relevant fields of MCAsmInfo.

This leads to a nice diffstat:
14 files changed, 127 insertions(+), 830 deletions(-)




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
074f837bbb6e21f8df290af60fe226dfaf3bdf35 19-Jan-2010 Chris Lattner <sabre@nondot.org> use %object like other elf targets, gas accepts either.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93857 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
10b318bcb39218d2ed525e4862c854bc8d1baf63 17-Jan-2010 Chris Lattner <sabre@nondot.org> now that MCSymbol::print doesn't use it's MAI argument, we can
remove it and change all the code that prints MCSymbols to use
<< instead, which is much simpler and cleaner.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
9c09363637c43ce7c28898993c32b9a63ded5b46 16-Jan-2010 Chris Lattner <sabre@nondot.org> switch more stuff onto MCSymbols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93608 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
4fb69f40bee04a415a92bca2a8ed4a8e72cf980d 16-Jan-2010 Chris Lattner <sabre@nondot.org> switch X86 target off CurFunctionName and MCIze more.
Note that the code wasn't calling DecorateCygMingName
when emitting the ".ascii -export" stuff at the end of
file for DLLExported functions. I don't know if it should
or not, but I'm preserving behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93603 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
12164414dd3daa6974985eeb2e89bfb93cf07641 16-Jan-2010 Chris Lattner <sabre@nondot.org> MCize a bunch more stuff, eliminating a lot of uses of the mangler
and CurrentFnName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93594 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
6b04edee11c2bb35a48b1c42f867b4ba8cdfff97 16-Jan-2010 Chris Lattner <sabre@nondot.org> add a AsmPrinter::GetGlobalValueSymbol and GetExternalSymbolSymbol
helper method, use it to simplify some code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
eeb3a00b84b7767d236ec8cf0619b9217fc247b9 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
parcISelDAGToDAG.cpp
735afe14eea8049bf69210ce8a3512e391fc643f 24-Nov-2009 Dan Gohman <gohman@apple.com> Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.
Note that "hasDotLocAndDotFile"-style debug info was already broken;
people wanting this functionality should implement it in the
AsmPrinter/DwarfWriter code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
bef8888a9197655512f156e50b10799da7240252 21-Nov-2009 Devang Patel <dpatel@apple.com> We are not using DBG_STOPPOINT anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89536 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
1924aabf996be9335fab34e7ee4fa2aa5911389c 13-Nov-2009 David Greene <greened@obbligato.org> Move DebugInfo checks into EmitComments and remove them from
target-specific AsmPrinters. Not all comments need DebugInfo.

Re-enable the line numbers comment test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88697 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
b9c2fd964ee7dd7823ac71db8443055e4d0f1c15 12-Nov-2009 David Greene <greened@obbligato.org> Make the MachineFunction argument of getFrameRegister const.

This also fixes a build error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87027 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
3f2bf85d14759cc4b28a86805f566ac805a54d00 12-Nov-2009 David Greene <greened@obbligato.org> Add a bool flag to StackObjects telling whether they reference spill
slots. The AsmPrinter will use this information to determine whether to
print a spill/reload comment.

Remove default argument values. It's too easy to pass a wrong argument
value when multiple arguments have default values. Make everything
explicit to trap bugs early.

Update all targets to adhere to the new interfaces..


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
adaace8aa8df16f1fa2b097f32ded38a49d89208 11-Nov-2009 Dan Gohman <gohman@apple.com> Set isBarrier = 1 on return instructions, as they are control barriers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86851 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
59a9178fbedb88427c8ff9e5fa7a8f2038f80a2e 07-Nov-2009 Chris Lattner <sabre@nondot.org> indicate what the native integer types for the target are.
Please verify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86397 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
73bb251cd7a535fb93bb3a52eda61555fb253f41 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
parcISelDAGToDAG.cpp
533297b58da8c74bec65551e1aface9801fc2259 29-Oct-2009 Dan Gohman <gohman@apple.com> Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a
bunch of associated comments, because it doesn't have anything to do
with DAGs or scheduling. This is another step in decoupling MachineInstr
emitting from scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6726b6d75a8b679068a58cb954ba97cf9d1690ba 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
b58f498f7502e7e1833decbbbb4df771367c7341 07-Oct-2009 Jim Grosbach <grosbach@apple.com> Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. When scavenging to allocate
for those registers, PEI then tracks the last-used register and value, and
if it is still available and matches the value for the next index, reuses
the existing value rather and removes the re-materialization instructions.
Fancier tracking and adjustment of scavenger allocations to keep more
values live for longer is possible, but not yet implemented and would likely
be better done via a different, less special-purpose, approach to the
problem.

eliminateFrameIndex() is modified so the target implementations can return
the registers they wish to be tracked for reuse.

ARM Thumb1 implements and utilizes the new mechanism. All other targets are
simply modified to adjust for the changed eliminateFrameIndex() prototype.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
e3cc3f3c84abfdf8eb3bd19dfa806ceea49f15d6 06-Oct-2009 Dan Gohman <gohman@apple.com> Instead of printing unnecessary basic block labels as labels in
verbose-asm mode, print comments instead. This eliminates a non-comment
difference between verbose-asm mode and non-verbose-asm mode.

Also, factor out the relevant code out of all the targets and into
target-independent code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
af0e2726835e096e32c30c1b88cc7a6232a6ef69 06-Oct-2009 Devang Patel <dpatel@apple.com> Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
b0fdedb3fd123a47e7deca75d1e6f7d64218b07a 01-Oct-2009 Devang Patel <dpatel@apple.com> Use MachineInstr as an processDebugLoc() argument.
This will allow processDebugLoc() to handle scopes for DWARF debug info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
602b0c8c17f458d2c80f2deb3c8e554d516ee316 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
parcISelDAGToDAG.cpp
ce31910eae5bd4896fa6c27798e7b26885691d3b 19-Sep-2009 Evan Cheng <evan.cheng@apple.com> Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82311 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
fb2e752e4175920d0531f2afc93a23d0cdf4db14 18-Sep-2009 Evan Cheng <evan.cheng@apple.com> Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes.
Not functionality change yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82273 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
ea7fd966985ebb7063c8a003d8d344e91644eb86 15-Sep-2009 Chris Lattner <sabre@nondot.org> add missing file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81881 91177308-0d34-0410-b5e6-96231b3b80d8
parcMachineFunctionInfo.h
db486a6d5311944f61b92db9f6074944dbbdb242 15-Sep-2009 Chris Lattner <sabre@nondot.org> several major improvements to the sparc backend: support for weak linkage
and PIC codegen. Patch by Venkatraman Govindaraju!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81877 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.cpp
parcInstrInfo.h
parcInstrInfo.td
parcRegisterInfo.td
f5382ab5180c4051737367ed9cacbab697be29de 13-Sep-2009 Daniel Dunbar <daniel@zuster.org> Remove unused variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81718 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
762ccea600158bb317dcccdff3303e942426cb71 13-Sep-2009 Chris Lattner <sabre@nondot.org> remove all but one reference to TargetRegisterDesc::AsmName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
d95148f073c31924f275a34296da52a7cdefad91 13-Sep-2009 Chris Lattner <sabre@nondot.org> the tblgen produced 'getRegisterName' method does not access
the object, make it static instead of const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81711 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
05af2616d0df19638e799d3e7afadea26d96a4ba 13-Sep-2009 Chris Lattner <sabre@nondot.org> make tblgen produce a function that returns the name for a physreg.
Nothing is using this info yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81707 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
70a54c07a0807bf89d1a8b4414e53298c376eb61 13-Sep-2009 Chris Lattner <sabre@nondot.org> replace printBasicBlockLabel with EmitBasicBlockStart,
now that printBasicBlockLabel is only used for starting
a MBB. This allows elimination of a bunch of arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
325d3dcfe4d5efc91db0f59b20a72a11dea024ed 13-Sep-2009 Chris Lattner <sabre@nondot.org> convert some uses of printBasicBlockLabel to use GetMBBSymbol
instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81677 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
c5ea263a23f4f15587e35c9cb07cf72a9fba7613 10-Sep-2009 Chris Lattner <sabre@nondot.org> remove DebugLoc from MCInst and eliminate "Comment printing" from
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.

This also fixes an xcore strangeness where it inserted two tabs
before every instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
634cca377a8254cfe8a5afe99ef2e6c6db7f0c6b 09-Sep-2009 Chris Lattner <sabre@nondot.org> hoist the call to processDebugLoc out of the generated
asm printer into the "printInstruction" routine. This
fixes a problem where the experimental asmprinter would
drop debug labels in some cases, and fixes issues on ppc/xcore
where pseudo instructions like "mr" didn't get debug locs properly.

It is annoying that this moves the call from one place into each
target, but a future set of more invasive refactorings will fix
that problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
930e4d96e8718abcb56212676c35e6f7ea0ab605 08-Sep-2009 Richard Pennington <rich@pennware.com> Add source debug information to the Sparc code generator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcMCAsmInfo.cpp
parcRegisterInfo.cpp
65c3c8f323198b99b88b109654194540cf9b3fa5 02-Sep-2009 Sandeep Patel <deeppatel1987@gmail.com> Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
b4f770b68a2f1890e17f634b695d19bb7d07168d 31-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Normalize makefile comments and sort cmake file lists.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80584 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
MakeLists.txt
eb2aa096bb8aba742b87a99d561185bb3f8863c5 26-Aug-2009 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Generate section for bss and enable weak symbols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80121 91177308-0d34-0410-b5e6-96231b3b80d8
parcMCAsmInfo.cpp
765e08d4d5dc3111f547d71da89f58e4e03d295f 26-Aug-2009 Venkatraman Govindaraju <venkatra@cs.wisc.edu> test commit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80070 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
705e07f578e2b3af47ddab610feb4e7f2d3063a5 23-Aug-2009 Chris Lattner <sabre@nondot.org> remove various std::ostream version of printing methods from
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealing his fun. ;-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
f682f3d019794d4402b73701a06a4bb117f5d5e7 23-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Forgot to update some CMakeLists.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79780 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
33adcfb4d217f5f23d9bde8ba02b8e48f9605fc5 22-Aug-2009 Chris Lattner <sabre@nondot.org> rename TAI -> MAI, being careful not to make MAILJMP instructions :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79777 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
af76e592c7f9deff0e55c13dbb4a34f07f1c7f64 22-Aug-2009 Chris Lattner <sabre@nondot.org> Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcMCAsmInfo.cpp
parcMCAsmInfo.h
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
parcTargetMachine.cpp
24f20e083280d979e8fa1bc88959ae9e8339ee99 22-Aug-2009 Devang Patel <dpatel@apple.com> Record variable debug info at ISel time directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
6c2f9e14fdf14d8c1c687c6bd9918183fa7f8a7f 19-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate AsmPrinter::SwitchToSection and just have clients
talk to the MCStreamer directly instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
a7ac47cee1a0b3f4c798ecaa22ecf9d1be9c07e6 12-Aug-2009 Chris Lattner <sabre@nondot.org> Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
825b72b0571821bf2d378749f69d6c4cfb52d2f9 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
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcInstrInfo.td
0a31d2f6456069adba19b8aeca66c68b633c38b4 11-Aug-2009 Chris Lattner <sabre@nondot.org> pass the TargetTriple down from each target ctor to the
LLVMTargetMachine ctor. It is currently unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78711 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
e50ed30282bb5b4a9ed952580523f2dda16215ac 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
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
5277b22687d3513dd29d5a9c8510cac740f933f6 08-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate TargetLoweringObjectFileSparc in favor of a TAI hook.
A TAI hook is appropriate in this case because this is just an
asm syntax issue, not a semantic difference. TLOF should model
the semantics of the section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78498 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcTargetAsmInfo.cpp
41aefdcdd1c1631041834d53ffada106a5cfaf02 08-Aug-2009 Chris Lattner <sabre@nondot.org> make printInstruction return void since its result is omitted. Make the
error condition get trapped with an assert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78449 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
7db949df789383acce98ef072f08794fdd5bd04e 07-Aug-2009 Dan Gohman <gohman@apple.com> Fix a bunch of namespace pollution.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78363 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
bccdcb1857f400206ed07984dc04e229c6013cc6 05-Aug-2009 Devang Patel <dpatel@apple.com> Remove dead code. MDNode and MDString are not Constant anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78207 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
98ca4f2a325f72374a477f9deba7d09e8999c29b 05-Aug-2009 Dan Gohman <gohman@apple.com> Major calling convention code refactoring.

Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.

This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.

This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
parcInstrInfo.td
e28039cfd1a9c43b5fa9274bf19372d96f58f460 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Move most targets TargetMachine constructor to only taking a target triple.
- The C, C++, MSIL, and Mips backends still need the module.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77927 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
3be03406c9c3b2075d5ae416499af2f15f703d6f 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Normalize Subtarget constructors to take a target triple string instead of
Module*.

Also, dropped uses of TargetMachine where unnecessary. The only target which
still takes a TargetMachine& is Mips, I would appreciate it if someone would
normalize this to match other targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77918 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
ba8e7401fb1cc27445a2fef6600335a93879a36d 02-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate TargetMAchine argument to sparc TAI


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77864 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
parcTargetMachine.cpp
8d4a0a328a89d1f3c7ad83048e04ace53b6ba781 02-Aug-2009 Chris Lattner <sabre@nondot.org> remove TargetAsmInfo::TM, which is now dead. The basic TAI class now
no longer depends on TM!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77863 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
b80610cd13e7accf6db0924c75d0914bf566922b 02-Aug-2009 Chris Lattner <sabre@nondot.org> REmove dead fields of TAI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77820 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
d5f02f65afb532c7a27c88dc0e690b33c228caab 31-Jul-2009 Daniel Dunbar <daniel@zuster.org> Normalize target registration code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77692 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/SparcTargetInfo.cpp
e53a600f065075731d0aeb9dc8f4f3d75f5a05f8 29-Jul-2009 Chris Lattner <sabre@nondot.org> pass the mangler down into the various SectionForGlobal methods.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
0a9f7b9c3ebe7d0ec033462e1a7c9101279956f9 28-Jul-2009 Devang Patel <dpatel@apple.com> Rename MDNode.h header. It defines MDnode and other metadata classes.
New name is Metadata.h.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77370 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
f0144127b98425d214e59e4a1a4b342b78e3642b 28-Jul-2009 Chris Lattner <sabre@nondot.org> Rip all of the global variable lowering logic out of TargetAsmInfo. Since
it is highly specific to the object file that will be generated in the end,
this introduces a new TargetLoweringObjectFile interface that is implemented
for each of ELF/MachO/COFF/Alpha/PIC16 and XCore.

Though still is still a brutal and ugly refactoring, this is a major step
towards goodness.

This patch also:
1. fixes a bunch of dangling pointer problems in the PIC16 backend.
2. disables the TargetLowering copy ctor which PIC16 was accidentally using.
3. gets us closer to xcore having its own crazy target section flags and
pic16 not having to shadow sections with its own objects.
4. fixes wierdness where ELF targets would set CStringSection but not
CStringSection_. Factor the code better.
5. fixes some bugs in string lowering on ELF targets.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcISelLowering.cpp
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
e346694a81cbead3289d11057111fba46aa30aae 27-Jul-2009 Chris Lattner <sabre@nondot.org> Eliminate getNamed/getUnnamedSection, adding a new and unified getOrCreateSection
instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77186 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
5fe575ff4fdefc1b003a009b1b9282526a26c237 27-Jul-2009 Chris Lattner <sabre@nondot.org> Eliminate SectionFlags, just embed a SectionKind into Section
instead and drive things based off of that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77184 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
0fcf4dc6d367216ff51501af282e33e93da8586f 26-Jul-2009 Chris Lattner <sabre@nondot.org> untangle a TargetAsmInfo hack where ELFTargetAsmInfo would create a
'unnamed' bss section, but some impls would want a named one. Since
they don't have consistent behavior, just make each target do their
own thing, instead of doing something "sortof common" then having
targets change immutable objects later.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77165 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
f40761d5229322c08701049f89aa10f7f7b8b743 26-Jul-2009 Chris Lattner <sabre@nondot.org> remove a densemap from TargetAsmInfo that was uniquing the targetflags strings,
just use a smallstring instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77144 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
8977d087c693fd581db82bcff134d12da0f48bd3 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Factor commonality in triple match routines into helper template for registering
classes, and migrate existing targets over.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77126 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/SparcTargetInfo.cpp
fa27ff296d3694a68e7abb3b6b7629588def3e58 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Kill Target specific ModuleMatchQuality stuff.
- This was overkill and inconsistently implemented.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77114 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/SparcTargetInfo.cpp
b4fc419d83bc4afc8ce5a204dd226d5ae58f5896 25-Jul-2009 Chris Lattner <sabre@nondot.org> this is (unfortunately) several changes mixed together:

1. Spell SectionFlags::Writeable as "Writable".
2. Add predicates for deriving SectionFlags from SectionKinds.
3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into
ELFTargetAsmInfo.
4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the
BSS bit set (the real fix for PR4619).
5. Fix isSuitableForBSS to not put globals with explicit sections
set in BSS (which was the reason #4 wasn't fixed earlier).
6. Remove my previous hack for PR4619.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77085 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
d6fd377f3333922c4e928019cdfa124ff7f4dd2e 25-Jul-2009 Daniel Dunbar <daniel@zuster.org> Simplify JIT target selection.
- Instead of requiring targets to define a JIT quality match function, we just
have them specify if they support a JIT.

- Target selection for the JIT just gets the host triple and looks for the best
target which matches the triple and has a JIT.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77060 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/SparcTargetInfo.cpp
0c795d61878156817cedbac51ec2921f2634c1a5 25-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add new helpers for registering targets.
- Less boilerplate == good.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77052 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
23ed52752bb40a9085c9d36bbc6603972c3e0080 24-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Remove unused member functions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76960 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
e922c0201916e0b980ab3cfe91e1413e68d55647 22-Jul-2009 Owen Anderson <resistor@mac.com> Get rid of the Pass+Context magic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
40bbebde9d250b875a47a688d0c6552834ada48f 21-Jul-2009 Chris Lattner <sabre@nondot.org> make AsmPrinter::doFinalization iterate over the global variables
and call PrintGlobalVariable, allowing elimination and simplification
of various targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
d3ffc0617402f3111f55bbb86d2fb121669fe680 21-Jul-2009 Chris Lattner <sabre@nondot.org> fix Sparc, SystemZ, and MSP430 to not override AsmPrinter::doInitialization.
This eliminates redundancy setting up the mangler and adds support to them
for module-level inline asm and a .file directive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76592 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
90f8b7073dd472afb21bc33be0f24391e7a4505b 21-Jul-2009 Chris Lattner <sabre@nondot.org> Rename LessPrivateGlobalPrefix -> LinkerPrivateGlobalPrefix to match the
LLVM IR concept.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
4cef584860acbde1d71157564e0d5f6f935b38a6 20-Jul-2009 Bill Wendling <isanbard@gmail.com> Pass in the unfortunately named "LessPrivatePrefix" for the
"LinkerPrivatePrefix". It seems to have been used in only one place before I
started this "linker_private" business. I'm thinking that a rename is in
order...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76479 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
3d10a5a75794356a0a568ce283713adc3a963200 20-Jul-2009 Bill Wendling <isanbard@gmail.com> Add plumbing for the `linker_private' linkage type. This type is meant for
"private" symbols which the assember shouldn't strip, but which the linker may
remove after evaluation. This is mostly useful for Objective-C metadata.

This is plumbing, so we don't have a use of it yet. More to come, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
a786c7b90cfacf1c36c975ad35c3b793c232e3d8 19-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Don't override LowerArguments in the SPARC backend. In addition to
being more consistent with other backends, this makes the SPARC backend
deal with functions with arguments with illegal types correctly, which
fixes some tests in test/CodeGen/Generic.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76375 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
b384c85877d9fd3e9f3ae8d1b68c7c610bc5a1f4 19-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add dependencies from TargetInfo onto .td generation.
- Shouldn't really be necessary, but currently .inc files get included into
some main target headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76349 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo/CMakeLists.txt
4cb1e13769856716261a4d315f8202bd918502c3 19-Jul-2009 Daniel Dunbar <daniel@zuster.org> Put Target definitions inside Target specific header, and llvm namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
argetInfo/SparcTargetInfo.cpp
5d77cad60bd82dfa2d00f78e26443d667922efbf 16-Jul-2009 Daniel Dunbar <daniel@zuster.org> Lift addAssemblyEmitter into LLVMTargetMachine.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75859 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
f05522974b3c1b9dc2644831364e19d5132e751b 16-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove old style hacks to register AsmPrinter into TargetMachine.
- No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
51b198af83cb0080c2709b04c129a3d774c07765 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Reapply TargetRegistry refactoring commits.

--- Reverse-merging r75799 into '.':
U test/Analysis/PointerTracking
U include/llvm/Target/TargetMachineRegistry.h
U include/llvm/Target/TargetMachine.h
U include/llvm/Target/TargetRegistry.h
U include/llvm/Target/TargetSelect.h
U tools/lto/LTOCodeGenerator.cpp
U tools/lto/LTOModule.cpp
U tools/llc/llc.cpp
U lib/Target/PowerPC/PPCTargetMachine.h
U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U lib/Target/PowerPC/PPCTargetMachine.cpp
U lib/Target/PowerPC/PPC.h
U lib/Target/ARM/ARMTargetMachine.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/ARM/ARMTargetMachine.h
U lib/Target/ARM/ARM.h
U lib/Target/XCore/XCoreTargetMachine.cpp
U lib/Target/XCore/XCoreTargetMachine.h
U lib/Target/PIC16/PIC16TargetMachine.cpp
U lib/Target/PIC16/PIC16TargetMachine.h
U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U lib/Target/Alpha/AlphaTargetMachine.cpp
U lib/Target/Alpha/AlphaTargetMachine.h
U lib/Target/X86/X86TargetMachine.h
U lib/Target/X86/X86.h
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
U lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
U lib/Target/X86/X86TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.h
U lib/Target/CppBackend/CPPTargetMachine.h
U lib/Target/CppBackend/CPPBackend.cpp
U lib/Target/CBackend/CTargetMachine.h
U lib/Target/CBackend/CBackend.cpp
U lib/Target/TargetMachine.cpp
U lib/Target/IA64/IA64TargetMachine.cpp
U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U lib/Target/IA64/IA64TargetMachine.h
U lib/Target/IA64/IA64.h
U lib/Target/MSIL/MSILWriter.cpp
U lib/Target/CellSPU/SPUTargetMachine.h
U lib/Target/CellSPU/SPU.h
U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U lib/Target/CellSPU/SPUTargetMachine.cpp
U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
U lib/Target/Mips/MipsTargetMachine.cpp
U lib/Target/Mips/MipsTargetMachine.h
U lib/Target/Mips/Mips.h
U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U lib/Target/Sparc/SparcTargetMachine.cpp
U lib/Target/Sparc/SparcTargetMachine.h
U lib/ExecutionEngine/JIT/TargetSelect.cpp
U lib/Support/TargetRegistry.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75820 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
2286f8dc4cec0625f7d7a14e2570926cf8599646 15-Jul-2009 Stuart Hastings <stuart@apple.com> Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair broken LLVM-GCC build.
Will revert 75770 in the llvm-gcc trunk.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75799 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
6c05796294a7a0693d96c0c87194b9d5ddf55a94 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Kill off old (TargetMachine level, not Target level) match quality functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75780 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
03f4bc5d6cf777c8aa559c299ef7f85126872881 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Provide TargetMachine implementations with reference to Target they were created
from.
- This commit is almost entirely propogating the reference through the
TargetMachine subclasses' constructor calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75778 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
4246790aa84a530b0378d917023584c2c7adb4a9 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Register Target's TargetMachine and AsmPrinter in the new registry.
- This abuses TargetMachineRegistry's constructor for now, this will get
cleaned up in time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75762 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
c984df8602a8b2450cbdb6ff55fd49ba709a391e 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add TargetInfo libraries for all targets.
- Intended to match current TargetMachine implementations.

- No facilities for linking these in yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75751 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
argetInfo/CMakeLists.txt
argetInfo/Makefile
argetInfo/SparcTargetInfo.cpp
71847813bc419f7a0667468136a07429c6d9f164 14-Jul-2009 David Greene <greened@obbligato.org> Have asm printers use formatted_raw_ostream directly to avoid a
dynamic_cast<>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75670 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
b8158acc23f5f0bf235fb1c6a8182a38ec9b00b2 14-Jul-2009 Chris Lattner <sabre@nondot.org> Reapply my previous asmprinter changes now with more testing and two
additional bug fixes:

1. The bug that everyone hit was a problem in the asmprinter where it
would remove $stub but keep the L prefix on a name when emitting the
indirect symbol. This is easy to fix by keeping the name of the stub
and the name of the symbol in a StringMap instead of just keeping a
StringSet and trying to reconstruct it late.

2. There was a problem printing the personality function. The current
logic to print out the personality function from the DWARF information
is a bit of a cesspool right now that duplicates a bunch of other
logic in the asm printer. The short version of it is that it depends
on emitting both the L and _ prefix for symbols (at least on darwin)
and until I can untangle it, it is best to switch the mangler back to
emitting both prefixes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
c23197a26f34f559ea9797de51e187087c039c42 14-Jul-2009 Torok Edwin <edwintorok@gmail.com> llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
PMover.cpp
parc.h
parcISelLowering.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
192957d376923cefc993c1b5c04127c42f1008ec 14-Jul-2009 Daniel Dunbar <daniel@zuster.org> Revert r75615, which depended on 75610.

--- Reverse-merging r75615 into '.':
U lib/Target/XCore/XCoreAsmPrinter.cpp
U lib/Target/PIC16/PIC16AsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
U lib/Target/MSP430/MSP430AsmPrinter.cpp
U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U lib/Target/MSIL/MSILWriter.cpp
U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
b09d2ccc0f23107fc1047694ce266a9cf5e0a3c2 14-Jul-2009 Chris Lattner <sabre@nondot.org> Rename getValueName -> getMangledName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75615 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
c25e7581b9b8088910da31702d4ca21c4734c6d7 11-Jul-2009 Torok Edwin <edwintorok@gmail.com> assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parc.h
parcISelLowering.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
d1474d09cbe5fdeec8ba0d6c6b52f316f3422532 09-Jul-2009 Owen Anderson <resistor@mac.com> Thread LLVMContext through MVT and related parts of SDISel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
dac237e18209b697a8ba122d0ddd9cad4dfba1f8 08-Jul-2009 Torok Edwin <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
smPrinter/SparcAsmPrinter.cpp
parcISelDAGToDAG.cpp
804e0fea4033e3b91dbc8198cef30de30f141bb5 08-Jul-2009 Torok Edwin <edwintorok@gmail.com> Convert more abort() calls to llvm_report_error().
Also remove trailing semicolon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
033080cf6a6f6ca94f20c410204405471c19c535 02-Jul-2009 Douglas Gregor <dgregor@apple.com> CMake build fixes, from Xerxes Ranby

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74720 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
b4202b84d7e54efe5e144885c7da63e6cc465f80 01-Jul-2009 Bill Wendling <isanbard@gmail.com> Update comments to make it clear that the function alignment is the Log2 of the
bytes and not bytes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74624 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
2578ba26e72e36dde64be0f52a2788480aad3378 01-Jul-2009 Evan Cheng <evan.cheng@apple.com> Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
5bcc8bd0c60cfe583ee47852950aad9e532c932e 01-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove unused AsmPrinter OptLevel argument, and propogate.
- This more or less amounts to a revert of r65379. I'm curious to know what
happened that caused this variable to become unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
20c568f366be211323eeaf0e45ef053278ec9ddc 01-Jul-2009 Bill Wendling <isanbard@gmail.com> Add an "alignment" field to the MachineFunction object. It makes more sense to
have the alignment be calculated up front, and have the back-ends obey whatever
alignment is decided upon.

This allows for future work that would allow for precise no-op placement and the
like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74564 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcISelLowering.cpp
parcISelLowering.h
2af72d455bbfea03d81dc812d660cd6278118d49 26-Jun-2009 Owen Anderson <resistor@mac.com> Privatize some data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
0f05d22a31bf76a1e066592a567217b73fcc4d7d 26-Jun-2009 Devang Patel <dpatel@apple.com> Let's ignore MDStrings also!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74255 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
4b73893d82866fc6889e550bedda0e4d76ad930a 25-Jun-2009 Douglas Gregor <dgregor@apple.com> Add missing dependencies to the CMake build system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74161 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
e4c0c0fab8caadd8159f6bdd6fa03e66d4b4af9c 25-Jun-2009 Devang Patel <dpatel@apple.com> No need to code gen MDNodes



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74150 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
a96751fc8ff1cc9a225ffbba73de53e2b9e1ae35 24-Jun-2009 Bob Wilson <bob.wilson@apple.com> Provide InitializeAllTargets and InitializeNativeTarget functions in the
C bindings. Change all the backend "Initialize" functions to have C linkage.
Change the "llvm/Config/Targets.def" header to use C-style comments to avoid
compile warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74026 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
7e9e36a23e07dfb0d7ceda3e76450073c0534f35 23-Jun-2009 Douglas Gregor <dgregor@apple.com> Eliminate object-relinking support from CMake. Fixes PR 4429 and
cleans up the CMake-based build system a bit. Started by a patch from
Xerxes RÃ¥nby.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
225503a5b5de954788ad1e4bc9c69211de334c05 19-Jun-2009 Chris Lattner <sabre@nondot.org> fix the sparc codegen to not depend on the sparc asmprinter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73767 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
1555a23335400143f2b54a66aedc4b5cbbb79f8d 16-Jun-2009 Douglas Gregor <dgregor@apple.com> Introduce new headers whose inclusion forces linking and
initialization of all targets (InitializeAllTargets.h) or assembler
printers (InitializeAllAsmPrinters.h). This is a step toward the
elimination of relinked object files, so that we can build normal
archives.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73543 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parcTargetMachine.cpp
41a024385f1220eadc48b48cb4c044a5fbc1b361 23-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Propagate CPU string out of SubtargetFeatures

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72335 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.h
587daedce2d6c2b2d380b6a5843a6f8b6cfc79e4 13-May-2009 Bill Wendling <isanbard@gmail.com> Change MachineInstrBuilder::addReg() to take a flag instead of a list of
booleans. This gives a better indication of what the "addReg()" is
doing. Remembering what all of those booleans mean isn't easy, especially if you
aren't spending all of your time in that code.

I took Jakob's suggestion and made it illegal to pass in "true" for the
flag. This should hopefully prevent any unintended misuse of this (by reverting
to the old way of using addReg()).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71722 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
777d2306b36816a53bc1ae1244c0dc7d998ae691 09-May-2009 Duncan Sands <baldrick@free.fr> Rename PaddedSize to AllocSize, in the hope that this
will make it more obvious what it represents, and stop
it being confused with the StoreSize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
98a366d547772010e94609e4584489b3e5ce0043 30-Apr-2009 Bill Wendling <isanbard@gmail.com> Instead of passing in an unsigned value for the optimization level, use an enum,
which better identifies what the optimization is doing. And is more flexible for
future uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
be8cc2a3dedeb7685f07e68cdc4b9502eb97eb2b 29-Apr-2009 Bill Wendling <isanbard@gmail.com> Second attempt:

Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.

Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
c69d56f1154342a57c9bdd4c17a10333e3520127 28-Apr-2009 Bill Wendling <isanbard@gmail.com> r70270 isn't ready yet. Back this out. Sorry for the noise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
2e9d5f912a9841d3685ba0241abe1131943fed29 28-Apr-2009 Bill Wendling <isanbard@gmail.com> Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.

Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'm not 100% sure if it's necessary to change it there...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70270 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
42bf74be1402df7409efbea089310d4c276fde37 25-Mar-2009 Evan Cheng <evan.cheng@apple.com> CodeGen still defaults to non-verbose asm, but llc now overrides it and default to verbose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
parcTargetMachine.h
4dc2b39bf89d7c87868008ef8a0f807e0419aca6 11-Mar-2009 Duncan Sands <baldrick@free.fr> It makes no sense to have a ODR version of common
linkage, so remove it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66690 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
667d4b8de6dea70195ff12ef39a4deebffa2f5c7 07-Mar-2009 Duncan Sands <baldrick@free.fr> Introduce new linkage types linkonce_odr, weak_odr, common_odr
and extern_weak_odr. These are the same as the non-odr versions,
except that they indicate that the global will only be overridden
by an *equivalent* global. In C, a function with weak linkage can
be overridden by a function which behaves completely differently.
This means that IP passes have to skip weak functions, since any
deductions made from the function definition might be wrong, since
the definition could be replaced by something completely different
at link time. This is not allowed in C++, thanks to the ODR
(One-Definition-Rule): if a function is replaced by another at
link-time, then the new function must be the same as the original
function. If a language knows that a function or other global can
only be overridden by an equivalent global, it can give it the
weak_odr linkage type, and the optimizers will understand that it
is alright to make deductions based on the function body. The
code generators on the other hand map weak and weak_odr linkage
to the same thing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
57f0db833dc30404f1f5d28b23df326e520698ec 24-Feb-2009 Bill Wendling <isanbard@gmail.com> Overhaul my earlier submission due to feedback. It's a large patch, but most of
them are generic changes.

- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.

- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
parc.h
parcTargetMachine.cpp
ef4cfc749a61d0d0252196c957697436ba7ec068 23-Feb-2009 Bill Wendling <isanbard@gmail.com> Propagate debug loc info through prologue/epilogue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65298 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
cb819f13d785ff6efcacfbd7d0fa9f3f67e5494d 19-Feb-2009 Bill Wendling <isanbard@gmail.com> Put code that generates debug labels into TableGen so that it can be used by
everyone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64978 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
38deef9ce58b33dba34515f23fb7dbde02164c77 18-Feb-2009 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64915 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
97357614b5957cc167c261d3be54713802715d9a 18-Feb-2009 Dan Gohman <gohman@apple.com> Factor out the code to add a MachineOperand to a MachineInstrBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64891 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
d552eee4a05789e80ef3298df473edb888471302 13-Feb-2009 Dale Johannesen <dalej@apple.com> Remove non-DebugLoc versions of buildMI from Sparc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64435 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parcISelLowering.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
21b5541814d57d0a31f353948e4e933dbb1af6a4 13-Feb-2009 Dale Johannesen <dalej@apple.com> Eliminate a couple of non-DebugLoc BuildMI variants.
Modify callers.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64409 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
d1c321a89ab999b9bb602b0f398ecd4c2022262c 12-Feb-2009 Bill Wendling <isanbard@gmail.com> Move debug loc info along when the spiller creates new instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64342 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
6f38cb61a94b3abab70f0ee463bdcf55d86d334e 07-Feb-2009 Dale Johannesen <dalej@apple.com> Use getDebugLoc forwarder instead of getNode()->getDebugLoc.
No functional change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64026 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
1fdbc1dd4e9cb42c79a30e8dc308c322e923cc52 07-Feb-2009 Dan Gohman <gohman@apple.com> Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing
ScheduleDAG's TLI member to use const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64018 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
b300d2aa3ef08b5074449e2c05804717f488f4e4 07-Feb-2009 Dale Johannesen <dalej@apple.com> Get rid of the last non-DebugLoc versions of getNode!

Many targets build placeholder nodes for special operands, e.g.
GlobalBaseReg on X86 and PPC for the PIC base. There's no
sensible way to associate debug info with these. I've left
them built with getNode calls with explicit DebugLoc::getUnknownLoc operands.
I'm not too happy about this but don't see a good improvement;
I considered adding a getPseudoOperand or something, but it
seems to me that'll just make it harder to read.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63992 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
e8d7230f480654cdb8ff1c3d0a38e1e9ab0bd55f 07-Feb-2009 Dale Johannesen <dalej@apple.com> Remove more non-DebugLoc getNode variants. Use
getCALLSEQ_{END,START} to permit passing no DebugLoc
there. UNDEF doesn't logically have DebugLoc; add
getUNDEF to encapsulate this.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63978 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
de06470330260f5937e7ca558f5f5b3e171f2ee5 06-Feb-2009 Dale Johannesen <dalej@apple.com> Remove more non-DebugLoc versions of getNode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63969 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f5f5dce897269885754fc79adeb809194da52942 06-Feb-2009 Dale Johannesen <dalej@apple.com> Eliminate remaining non-DebugLoc version of getTargetNode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63951 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
3484c09e0da3c05c8a78946e090c7610208d937b 05-Feb-2009 Dale Johannesen <dalej@apple.com> Remove a non-DebugLoc version of getNode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63889 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
a05dca4f9e051fad19fe9b5f6cce2715c1e5d505 05-Feb-2009 Dale Johannesen <dalej@apple.com> Remove non-DebugLoc forms of CopyToReg and CopyFromReg.
Adjust callers.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63789 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
33c960f523f2308482d5b2816af46a7ec90a6d3d 04-Feb-2009 Dale Johannesen <dalej@apple.com> Remove non-DebugLoc versions of getLoad and getStore.
Adjust the many callers of those versions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63767 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
39355f9fea790c5a1b12ef0fdcfeac3f533232ea 04-Feb-2009 Dale Johannesen <dalej@apple.com> Remove non-DebugLoc forms of the exotic forms
of Lod and Sto; patch uses.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63716 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
7d2ad624fa749a6d3edac0d94e9c107989c16304 31-Jan-2009 Dale Johannesen <dalej@apple.com> Make LowerCallTo and LowerArguments take a DebugLoc
argument. Adjust all callers and overloaded versions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63444 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1 20-Jan-2009 Evan Cheng <evan.cheng@apple.com> Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
bb46f52027416598a662dc1c58f48d9d56b1a65b 15-Jan-2009 Rafael Espindola <rafael.espindola@gmail.com> Add the private linkage.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
79ce276083ced01256a0eb7d80731e4948ca6e87 15-Jan-2009 Dan Gohman <gohman@apple.com> Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph
and into the ScheduleDAGInstrs class, so that they don't get
destructed and re-constructed for each block. This fixes a
compile-time hot spot in the post-pass scheduler.

To help facilitate this, tidy and do some minor reorganization
in the scheduler constructor functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62275 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 12-Jan-2009 Duncan Sands <baldrick@free.fr> Rename getABITypeSize to getTypePaddedSize, as
suggested by Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/SparcAsmPrinter.cpp
9b8f542e2746b28721b3ec603c3aaaa10ea708fc 09-Jan-2009 Misha Brukman <brukman+llvm@gmail.com> Removed trailing whitespace from Makefiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
d68a07650cdb2e18f18f362ba533459aa10e01b6 05-Jan-2009 Dan Gohman <gohman@apple.com> Tidy up #includes, deleting a bunch of unnecessary #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcInstrInfo.cpp
8c0f244c3ed90a3f702bac09334cac2d3236aecb 12-Dec-2008 Duncan Sands <baldrick@free.fr> Don't make use of an illegal type (i64) when
lowering f64 function arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60944 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
c54baa2d43730f1804acfb4f4e738fba72f966bd 03-Dec-2008 Dan Gohman <gohman@apple.com> Split foldMemoryOperand into public non-virtual and protected virtual
parts, and add target-independent code to add/preserve
MachineMemOperands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60488 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
aaffa05d0a652dd3eae76a941d02d6b0469fa821 01-Dec-2008 Duncan Sands <baldrick@free.fr> There are no longer any places that require a
MERGE_VALUES node with only one operand, so get
rid of special code that only existed to handle
that possibility.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60349 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
027fdbe3ba6762b9867c6f891d64f76b7d6a4557 24-Nov-2008 Evan Cheng <evan.cheng@apple.com> Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59953 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
cbad42cfd1cc93a41ff26ea2e8895bfbc09f54f2 18-Nov-2008 Dan Gohman <gohman@apple.com> Add more const qualifiers. This fixes build breakage from r59540.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59542 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
92adc19be95347225f713db8cc1b5e22ac08bb5e 15-Nov-2008 Oscar Fuentes <ofv@wanadoo.es> Adds extern "C" ints to the .cpp files that use RegisterTarget, as
well as 2 files that use "Registrator"s. These are to be used by the
MSVC builds, as the Win32 linker does not include libs that are
otherwise unreferenced, even if global constructors in the lib have
side-effects.

Patch by Scott Graham!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59378 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
2ae80d8ab17a0d15950bbab8f3bbb03fd1edb19b 11-Nov-2008 Oscar Fuentes <ofv@wanadoo.es> CMake: corrected split of Alpha and Sparc AsmPrinters.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59050 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
3bd86aac994d5d68797c98b53b3ef892df1e99f6 11-Nov-2008 Anton Korobeynikov <asl@math.spbu.ru> Separate sparc asmprinter. This should unbreak the native build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/Makefile
smPrinter/SparcAsmPrinter.cpp
akefile
parcAsmPrinter.cpp
8be6bbe5bfd50945ac6c5542e0f54a0924a5db8d 05-Nov-2008 Dan Gohman <gohman@apple.com> Eliminate the ISel priority queue, which used the topological order for a
priority function. Instead, just iterate over the AllNodes list, which is
already in topological order. This eliminates a fair amount of bookkeeping,
and speeds up the isel phase by about 15% on many testcases.

The impact on most targets is that AddToISelQueue calls can be simply removed.

In the x86 target, there are two additional notable changes.

The rule-bending AND+SHIFT optimization in MatchAddress that creates new
pre-isel nodes during isel is now a little more verbose, but more robust.
Instead of either creating an invalid DAG or creating an invalid topological
sort, as it has historically done, it can now just insert the new nodes into
the node list at a position where they will be consistent with the topological
ordering.

Also, the address-matching code has logic that checked to see if a node was
"already selected". However, when a node is selected, it has all its uses
taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
further visits from MatchAddress. This code is now removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58748 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
8ad4c00c00233acb8a3395098e2b575cc34de46b 27-Oct-2008 David Greene <greened@obbligato.org> Have TableGen emit setSubgraphColor calls under control of a -gen-debug
flag. Then in a debugger developers can set breakpoints at these calls
to see waht is about to be selected and what the resulting subgraph
looks like. This really helps when debugging instruction selection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58278 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6520e20e4fb31f2e65e25c38b372b19d33a83df4 18-Oct-2008 Dan Gohman <gohman@apple.com> Teach DAGCombine to fold constant offsets into GlobalAddress nodes,
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)

This allows instruction selection to emit folded constant offsets
in more cases, such as the included testcase, eliminating the need
for explicit arithmetic instructions.

This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
that attempted to achieve the same effect, but wasn't as effective.

Also, fix handling of offsets in GlobalAddressSDNodes in several
places, including changing GlobalAddressSDNode's offset from
int to int64_t.

The Mips, Alpha, Sparc, and CellSPU targets appear to be
unaware of GlobalAddress offsets currently, so set the hook to
false on those targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57748 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
8e8b8a223c2b0e69f44c0639f846260c8011668f 16-Oct-2008 Dan Gohman <gohman@apple.com> Const-ify several TargetInstrInfo methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57622 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
0329466b6b4927f4e6f5d144891fef06a027fec5 14-Oct-2008 Evan Cheng <evan.cheng@apple.com> Rename LoadX to LoadExt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57526 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
b8cab9227a0f6ffbdaae33e3c64268e265008a6a 14-Oct-2008 Dan Gohman <gohman@apple.com> Fix command-line option printing to print two spaces where needed,
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
e563bbc312f8b11ecfe12b8187176f667df1dff3 12-Oct-2008 Chris Lattner <sabre@nondot.org> Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's as
parameters instead of raw Constants. This prevents the constants from
being selected by the isel pass, fixing PR2735.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57385 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.td
875314bb529c9208e9e8dedec90f1e4a966442e9 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Fix a thinko and unbreak sparc default CC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57368 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
df75bbae949ab834f3ee4697ea2c13d0ee9f28b2 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Extend set of return registers on sparc until someone will implement MRV support there. At least, this will allow libgcc compile, however we are not ABI-compatible with stuff compiled with native gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57364 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
4cf5e2eb6cbbe5e51b18921bd85056aaf4dc1c37 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Ignore extra 'r' modifier for now

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57363 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
4b58b6a5b41e76d73d25beb7483a877ec38ea8c9 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Use expand for smul_lohi for now

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57362 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
0eefda1335f5e86f95dbb58352321a43237e1089 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Add rudimentary support for 'r' register operand

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57359 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
53835708e1540299eefdbbb70be2ebb1847dd3eb 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57358 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f369330c2d25b37d2590720e45d11a1d47950ce6 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Add rudimentary asmprinter support for printing inline asm operands for sparc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57346 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
2fcfd83cb4b10c072186949ee39326f236c9f1b3 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Add dummy 'm' inline asm constraint handler for Sparc. I'm not sure, whether it is correct, however :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57345 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a43e51d0fea8b1a6148934633012351a0432a4a6 10-Oct-2008 Anton Korobeynikov <asl@math.spbu.ru> Cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57344 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
da8ac5fd9130b70b61be61e4819faa8d842d708f 03-Oct-2008 Dan Gohman <gohman@apple.com> Avoid creating two TargetLowering objects for each target.
Instead, just create one, and make sure everything that needs
it can access it. Previously most of the SelectionDAGISel
subclasses all had their own TargetLowering object, which was
redundant with the TargetLowering object in the TargetMachine
subclasses, except on Sparc, where SparcTargetMachine
didn't have a TargetLowering object. Change Sparc to work
more like the other targets here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57016 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcISelDAGToDAG.cpp
parcTargetMachine.cpp
parcTargetMachine.h
d735b8019b0f297d7c14b55adcd887af24d8e602 03-Oct-2008 Dan Gohman <gohman@apple.com> Switch the MachineOperand accessors back to the short names like
isReg, etc., from isRegister, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
5df3186f598163258fabf3448d9372843804d1ab 29-Sep-2008 Duncan Sands <baldrick@free.fr> Rename isWeakForLinker to mayBeOverridden. Use it
instead of hasWeakLinkage in a bunch of optimization
passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56782 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
e1ad087fcbb51ed66e450d010f849b5792b4b6fc 26-Sep-2008 Oscar Fuentes <ofv@wanadoo.es> CMake: Builds all targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56641 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
c25e1ea5e9aa54952b6736a9579e25a5c2d8139f 25-Sep-2008 Anton Korobeynikov <asl@math.spbu.ru> Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56573 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
0c8e80607bc3296a4775f05c02f0d11df8e5cb04 25-Sep-2008 Anton Korobeynikov <asl@math.spbu.ru> Drop obsolete hook and change all usage to new interface

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56572 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
0ba2bcfcc3149a25d08aa8aa00fb6c34a4e25bdd 23-Sep-2008 Dan Gohman <gohman@apple.com> Fix these enums' starting values to reflect the way that
instruction opcodes are now numbered. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56497 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.h
0bb41608e94adfe9884bc188457c4f6ae47ea43c 22-Sep-2008 Dale Johannesen <dalej@apple.com> Make log, log2, log10, exp, exp2 use Expand by
default.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56471 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
056292fd738924f3f7703725d8f630983794b5a5 16-Sep-2008 Bill Wendling <isanbard@gmail.com> Reverting r56249. On further investigation, this functionality isn't needed.

Apologies for the thrashing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56251 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
9468a9b6beed640eca64274c8dcc5aed3b94450b 16-Sep-2008 Bill Wendling <isanbard@gmail.com> - Change "ExternalSymbolSDNode" to "SymbolSDNode".
- Add linkage to SymbolSDNode (default to external).
- Change ISD::ExternalSymbol to ISD::Symbol.
- Change ISD::TargetExternalSymbol to ISD::TargetSymbol

These changes pave the way to allowing SymbolSDNodes with non-external linkage.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56249 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
014278e6a11fa0767853b831e5bf51b95bf541c5 13-Sep-2008 Dan Gohman <gohman@apple.com> Remove isImm(), isReg(), and friends, in favor of
isImmediate(), isRegister(), and friends, to avoid confusion
about having two different names with the same meaning. I'm
not attached to the longer names, and would be ok with
changing to the shorter names if others prefer it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56189 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
095cc29f321382e1f7d295e262a28197f92c5491 13-Sep-2008 Dan Gohman <gohman@apple.com> Define CallSDNode, an SDNode subclass for use with ISD::CALL.
Currently it just holds the calling convention and flags
for isVarArgs and isTailCall.

And it has several utility methods, which eliminate magic
5+2*i and similar index computations in several places.

CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
nodes that are not CSE'd gracefully.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
f5aeb1a8e4cf272c7348376d185ef8d8267653e0 12-Sep-2008 Dan Gohman <gohman@apple.com> Rename ConstantSDNode::getValue to getZExtValue, for consistency
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcInstrInfo.td
ae73dc1448d25b02cabc7c64c86c64371453dda8 04-Sep-2008 Dan Gohman <gohman@apple.com> Tidy up several unbeseeming casts from pointer to intptr_t.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
7794f2a3a7778bdbc9bdd861db1fe914450e0470 04-Sep-2008 Dale Johannesen <dalej@apple.com> Add intrinsics for log, log2, log10, exp, exp2.
No functional change (and no FE change to generate them).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55753 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ba36cb5242eb02b12b277f82b9efe497f7da4d7f 28-Aug-2008 Gabor Greif <ggreif@gmail.com> erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55504 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
940f83e772ca2007d62faffc83094bd7e8da6401 26-Aug-2008 Owen Anderson <resistor@mac.com> Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy 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
parcInstrInfo.cpp
parcInstrInfo.h
f350b277f32d7d47f86c0e54f4aec4d470500618 23-Aug-2008 Dan Gohman <gohman@apple.com> Move the point at which FastISel taps into the SelectionDAGISel
process up to a higher level. This allows FastISel to leverage
more of SelectionDAGISel's infastructure, such as updating Machine
PHI nodes.

Also, implement transitioning from SDISel back to FastISel in
the middle of a block, so it's now possible to go back and
forth. This allows FastISel to hand individual CallInsts and other
complicated things off to SDISel to handle, while handling the rest
of the block itself.

To help support this, reorganize the SelectionDAG class so that it
is allocated once and reused throughout a function, instead of
being completely reallocated for each block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55219 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ad3460c3c968e33c5b9a07104b9fe5a5c27ff55b 21-Aug-2008 Dan Gohman <gohman@apple.com> Simplify SelectRoot's interface, and factor out some common code
from all targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55124 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
cb3718832375a581c5ea23f15918f3ea447a446c 21-Aug-2008 Owen Anderson <resistor@mac.com> Use raw_ostream throughout the AsmPrinter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
328da65bd14045d3e229cbc5549835cebf6ff703 16-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Add interface for section override. Use this for Sparc, since it should use named BSS section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54844 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
d0c1e29aecdaaa67ffabbaf2dd255809e6df4978 16-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Reduce heap trashing due to std::string construction / concatenation via caching of section flags string representations

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54842 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
44eb65cf58e3ab9b5621ce72256d1621a18aeed7 15-Aug-2008 Owen Anderson <resistor@mac.com> Convert uses of std::vector in TargetInstrInfo to SmallVector. This change had to be propoagated down into all the targets and up into all clients of this API.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54802 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
cbdf30af797115fed613cec7739c4ae0cd52abb1 08-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Properly print flags on Sparc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54543 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
25c6a087dd8974c1ec1e37733f78bd9f1db351c4 08-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Use mergeable strings sections on sparc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54541 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
f5b6a47bb57fb5ffc734416d4d5d993e1a06273b 08-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Handle visibility printing with all generality. Remove bunch of duplicate code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54540 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
fcd99bb42817eb9a12f871b04b3b892429afe169 07-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Use EmitAlignment consistently

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54456 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
2a166e9739986486980e4aa65fdfc54dfa62fe9d 07-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54455 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
5b794b98cebbc3982b87780657e0d280c2bcdd04 07-Aug-2008 Anton Korobeynikov <asl@math.spbu.ru> Switch Sparc to new section handling stuff. Refactor printing of module-level GVs significantly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54450 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
parcTargetMachine.cpp
e594fd473ef5b484268935f3e80da3cd3331149f 03-Aug-2008 Chris Lattner <sabre@nondot.org> Emit saveri with the correct operand order, patch by Richard Pennington!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54313 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
475871a144eb604ddaf37503397ba0941442e5fb 27-Jul-2008 Dan Gohman <gohman@apple.com> Rename SDOperand to SDValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
e8be6c63915e0389f1eef6b53c64300d13b2ce99 17-Jul-2008 Dan Gohman <gohman@apple.com> Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk
replacement of multiple values. This is slightly more efficient
than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically
could be optimized even further. However, an important property of this
new function is that it handles the case where the source value set and
destination value set overlap. This makes it feasible for isel to use
SelectNodeTo in many very common cases, which is advantageous because
SelectNodeTo avoids a temporary node and it doesn't require CSEMap
updates for users of values that don't change position.

Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to
handle operand lists more efficiently, and to correctly handle a number
of corner cases to which its new wider use exposes it.

This commit also includes a change to the encoding of post-isel opcodes
in SDNodes; now instead of being sandwiched between the target-independent
pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel
opcodes are now represented as negative values. This makes it possible
to test if an opcode is pre-isel or post-isel without having to know
the size of the current target's post-isel instruction set.

These changes speed up llc overall by 3% and reduce memory usage by 10%
on the InstructionCombining.cpp testcase with -fast and -regalloc=local.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c007848b5aa0883715b3cf0ded82f7bff750896b 10-Jul-2008 Owen Anderson <resistor@mac.com> Fix the build by adding a #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53388 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
8e5f2c6f65841542e2a7092553fe42a00048e4c7 08-Jul-2008 Dan Gohman <gohman@apple.com> Pool-allocation for MachineInstrs, MachineBasicBlocks, and
MachineMemOperands. The pools are owned by MachineFunctions.

This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcInstrInfo.cpp
1002c0203450620594a85454c6a095ca94b87cb2 07-Jul-2008 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
9f1c8317a4676945b4961ddb9827ef2412551620 03-Jul-2008 Evan Cheng <evan.cheng@apple.com> - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
4bdcb61af33399d4e01fdf3c47ca1f1f5356e370 02-Jul-2008 Duncan Sands <baldrick@free.fr> Add a new getMergeValues method that does not need
to be passed the list of value types, and use this
where appropriate. Inappropriate places are where
the value type list is already known and may be
long, in which case the existing method is more
efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
4406604047423576e36657c7ede266ca42e79642 01-Jul-2008 Dan Gohman <gohman@apple.com> Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.

Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.

This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
7f460203b0c5350e9b2c592f438e40f7a7de6e45 30-Jun-2008 Dan Gohman <gohman@apple.com> Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directory string, all existing as individual SDNodes to be the
operands.

This was the only user of ISD::STRING, StringSDNode, etc., so
remove those and some associated code.

This makes stop-points considerably easier to read in
-view-legalize-dags output, and reduces overhead (creating new
nodes and copying std::strings into them) on code containing
debugging information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
db8d56b825efeb576d67b9dbe39d736d93306222 30-Jun-2008 Evan Cheng <evan.cheng@apple.com> Split scheduling from instruction selection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52923 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a44b674a42b6ca57128c4eb5a358298ed3bb1406 30-Jun-2008 Dan Gohman <gohman@apple.com> Replace some std::vectors that showed up in heap profiling with
SmallVectors. Change the signature of TargetLowering::LowerArguments
to avoid returning a vector by value, and update the two targets
which still use this directly, Sparc and IA64, accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52917 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
f9516208e57364ab1e7d8748af1f59a2ea5fb572 30-Jun-2008 Duncan Sands <baldrick@free.fr> Revert the SelectionDAG optimization that makes
it impossible to create a MERGE_VALUES node with
only one result: sometimes it is useful to be able
to create a node with only one result out of one of
the results of a node with more than one result, for
example because the new node will eventually be used
to replace a one-result node using ReplaceAllUsesWith,
cf X86TargetLowering::ExpandFP_TO_SINT. On the other
hand, most users of MERGE_VALUES don't need this and
for them the optimization was valuable. So add a new
utility method getMergeValues for creating MERGE_VALUES
nodes which by default performs the optimization.
Change almost everywhere to use getMergeValues (and
tidy some stuff up at the same time).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
0011dc4738fbe624d44197ef9496517fd093eaa4 21-Jun-2008 Dan Gohman <gohman@apple.com> Use MachineBasicBlock::transferSuccessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52594 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb 06-Jun-2008 Duncan Sands <baldrick@free.fr> Wrap MVT::ValueType in a struct to get type safety
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
aafce77b17d340aace52bcd49d1944109d82f14a 14-May-2008 Dale Johannesen <dalej@apple.com> Add CommonLinkage; currently tentative definitions
are represented as "weak", but there are subtle differences
in some cases on Darwin, so we need both. The intent
is that "common" will behave identically to "weak" unless
somebody changes their target to do something else.
No functional change as yet.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51118 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
c9f5f3f64f896d0a8c8fa35a1dd98bc57b8960f6 14-May-2008 Dan Gohman <gohman@apple.com> Change target-specific classes to use more precise static types.
This eliminates the need for several awkward casts, including
the last dynamic_cast under lib/Target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51091 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.h
parcTargetMachine.h
844731a7f1909f55935e3514c9e713a62d67662e 13-May-2008 Dan Gohman <gohman@apple.com> Clean up the use of static and anonymous namespaces. This turned up
several things that were neither in an anonymous namespace nor static
but not intended to be global.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
707e0184233f27e0e9f9aee0309f2daab8cfe7f8 12-Apr-2008 Dan Gohman <gohman@apple.com> Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal
on any current target and aren't optimized in DAGCombiner. Instead
of using intermediate nodes, expand the operations, choosing between
simple loads/stores, target-specific code, and library calls,
immediately.

Previously, the code to emit optimized code for these operations
was only used at initial SelectionDAG construction time; now it is
used at all times. This fixes some cases where rep;movs was being
used for small copies where simple loads/stores would be better.

This also cleans up code that checks for alignments less than 4;
let the targets make that decision instead of doing it in
target-independent code. This allows x86 to use rep;movs in
low-alignment cases.

Also, this fixes a bug that resulted in the use of rep;stos for
memsets of 0 with non-constant memory size when the alignment was
at least 4. It's better to use the library in this case, which
can be significantly faster when the size is large.

This also preserves more SourceValue information when memory
intrinsics are lowered into simple loads/stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
ca1267c02b025cc719190b05f9e1a5d174a9caf7 31-Mar-2008 Evan Cheng <evan.cheng@apple.com> Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
950a4c40b823cd4f09dc71be635229246dfd6cac 25-Mar-2008 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.h
315123fb6a93f26f3660b7cb297ad378ec14c92d 17-Mar-2008 Chris Lattner <sabre@nondot.org> Check in some #ifdef'd out code switching call argument
lowering over to SparcCallingConv.td. We can't make the switch
yet because we can't say to pass f64 registers in 2 x i32 registers
with the td file yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48449 91177308-0d34-0410-b5e6-96231b3b80d8
parcCallingConv.td
parcISelLowering.cpp
b26bc75213563f594416fae906010ded242eaf3e 17-Mar-2008 Chris Lattner <sabre@nondot.org> remove dead code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48445 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
98949a6d2c42e386f36b5fd94cb97008a51b610f 17-Mar-2008 Chris Lattner <sabre@nondot.org> Switch sparc from using LowerCallTo to using LowerOperation(CALL) like
other targets. Use autogenerated calling conv to lower result of
calls.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48444 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelLowering.cpp
parcISelLowering.h
5a65b928302494ad2b3051980ce956e8f9e95023 17-Mar-2008 Chris Lattner <sabre@nondot.org> Start moving sparc to use SparcCallingConv.td, switching over
return lowering first. This fixes a bug where the top and bottom
of i64 values were returned in the wrong registers before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48443 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parc.td
parcCallingConv.td
parcISelLowering.cpp
d23405e6f04135cabcad4d9bd7aa6e4f187bed3a 17-Mar-2008 Chris Lattner <sabre@nondot.org> split sparc lowering out into SparcISelLowering.{cpp|h} to follow
best practices.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48442 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcISelLowering.cpp
parcISelLowering.h
601fe38b1e73ccf6d4020fda3ae1d68d44f47f0c 17-Mar-2008 Chris Lattner <sabre@nondot.org> refactor the LowerOperation code out to individual functions for
each lowering, which is 'best practice'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48441 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
da47e6e0d003c873da960361549e57ee4617c301 15-Mar-2008 Evan Cheng <evan.cheng@apple.com> Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48380 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
704df9fcbddd8bd6f358bef688ef51f8540dce4d 14-Mar-2008 Dan Gohman <gohman@apple.com> Use SDTNone instead of duplicating it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48346 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
bfae83139dcb4fffd50b939e1b1224b0126f04d4 11-Mar-2008 Dan Gohman <gohman@apple.com> Use PassManagerBase instead of FunctionPassManager for functions
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48256 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
d2cde68855125b6815b1575f29cd96927614b0cd 10-Mar-2008 Evan Cheng <evan.cheng@apple.com> Default ISD::PREFETCH to expand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48169 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
27b7db549e4c5bff4579d209304de5628513edeb 08-Mar-2008 Evan Cheng <evan.cheng@apple.com> Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48042 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6baaf915982cd420c4ce81123547314633234520 28-Feb-2008 Chris Lattner <sabre@nondot.org> Sparc backend doesn't support debug info yet, mark the nodes as expand. This fixes a crash on
test/DebugInfo/funccall.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47709 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a4b521598aff90b925ea397ddd36d479c99dd9f7 28-Feb-2008 Chris Lattner <sabre@nondot.org> Fix CodeGen/Generic/storetrunc-fp.ll on sparc, PR2105


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47707 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
61273d55e9ce068fef5dfcddb65e5ad9c1f4772e 28-Feb-2008 Chris Lattner <sabre@nondot.org> fix CodeGen/Generic/2008-01-25-dag-combine-mul.ll on sparc, PR2105


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47706 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcISelDAGToDAG.cpp
fb8075d03f5c87bd57dcc9c5f2304f6b13c55aad 28-Feb-2008 Evan Cheng <evan.cheng@apple.com> Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to 16-byte boundaries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47703 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
6ef781f3ce0d0311004adba9d1e7dbd7950918dd 27-Feb-2008 Bill Wendling <isanbard@gmail.com> Final de-tabification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47663 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
74ab84c31ef64538a1b56e1f282e49303412ad17 26-Feb-2008 Bill Wendling <isanbard@gmail.com> Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool
would have been a Godsend here!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
ae9f3a3b7c915f725aef5a7250e88eaeddda03c6 20-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
d497d9fab6e90499c703f3e672ec001dbfa074f9 16-Feb-2008 Andrew Lenharth <andrewl@lenharth.org> I cannot find a libgcc function for this builtin. Therefor expanding it to a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47213 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
00fee65fd21f9615d1a604b8b7d42cd16a3f6b47 14-Feb-2008 Duncan Sands <baldrick@free.fr> In TargetLowering::LowerCallTo, don't assert that
the return value is zero-extended if it isn't
sign-extended. It may also be any-extended.
Also, if a floating point value was returned
in a larger floating point type, pass 1 as the
second operand to FP_ROUND, which tells it
that all the precision is in the original type.
I think this is right but I could be wrong.
Finally, when doing libcalls, set isZExt on
a parameter if it is "unsigned". Currently
isSExt is set when signed, and nothing is
set otherwise. This should be right for all
calls to standard library routines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47122 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
e179584f9b740cf3a36bde70f8cab40de59b8081 14-Feb-2008 Nate Begeman <natebegeman@mac.com> Change how FP immediates are handled.
1) ConstantFP is now expand by default
2) ConstantFP is not turned into TargetConstantFP during Legalize
if it is legal.

This allows ConstantFP to be handled like Constant, allowing for
targets that can encode FP immediates as MachineOperands.

As a bonus, fix up Itanium FP constants, which now correctly match,
and match more constants! Hooray.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47121 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
977a76fbb6ea1b87dfd7fbbe2ae2afb63e982ff3 13-Feb-2008 Dan Gohman <gohman@apple.com> Simplify some logic in ComputeMaskedBits. And change ComputeMaskedBits
to pass the mask APInt by value, not by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47096 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
fd29e0eb060ea8b4d490860329234d2ae5f5952e 13-Feb-2008 Dan Gohman <gohman@apple.com> Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t.
Add an overload that supports the uint64_t interface for use by clients
that haven't been updated yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47039 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6f0d024a534af18d9e60b3ea757376cd8a3a980e 10-Feb-2008 Dan Gohman <gohman@apple.com> Rename MRegisterInfo to TargetRegisterInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
parcTargetMachine.h
5fd79d0560570fed977788a86fa038b898564dfa 08-Feb-2008 Evan Cheng <evan.cheng@apple.com> It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46893 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 06-Feb-2008 Dan Gohman <gohman@apple.com> Re-apply the memory operand changes, with a fix for the static
initializer problem, a minor tweak to the way the
DAGISelEmitter finds load/store nodes, and a renaming of the
new PseudoSourceValue objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
4e3f5a4e9c13f216856515e6f000881f2c850736 05-Feb-2008 Evan Cheng <evan.cheng@apple.com> Dwarf requires variable entries to be in the source order. Right now, since we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46724 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
3d62d780abbe0c2dd8edd7dd37a27365b2032d73 03-Feb-2008 Chris Lattner <sabre@nondot.org> explicitly include Compiler.h instead of getting it from tblgen in the middle of a class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46676 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
4eecdeb3faf5df864790175da5d58301b751ec11 02-Feb-2008 Evan Cheng <evan.cheng@apple.com> Get rid of the annoying blank lines before labels.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46667 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
a844bdeab31ef04221e7ef59a8467893584cc14d 02-Feb-2008 Evan Cheng <evan.cheng@apple.com> SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
334dc1f58d617dcff969a2e107febaae42bbc883 31-Jan-2008 Evan Cheng <evan.cheng@apple.com> Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c6c391daddbafa722d9ca87d18f204e9a6e617a3 31-Jan-2008 Dan Gohman <gohman@apple.com> Create a new class, MemOperand, for describing memory references
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
parcISelDAGToDAG.cpp
ff9b373e8f5006c629af81e2619778b4c4f5249e 30-Jan-2008 Evan Cheng <evan.cheng@apple.com> Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a 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
parcISelDAGToDAG.cpp
d102593b425da27fa96359300ff0e3d547d0ac8d 29-Jan-2008 Duncan Sands <baldrick@free.fr> Use getPreferredAlignmentLog or getPreferredAlignment
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
parcAsmPrinter.cpp
f9c98e650d2795b8edfae8e1560c221029df218b 23-Jan-2008 Duncan Sands <baldrick@free.fr> The last pieces needed for loading arbitrary
precision integers. This won't actually work
(and most of the code is dead) unless the new
legalization machinery is turned on. While
there, I rationalized the handling of i1, and
removed some bogus (and unused) sextload patterns.
For i1, this could result in microscopically
better code for some architectures (not X86).
It might also result in worse code if annotating
with AssertZExt nodes turns out to be more harmful
than helpful.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46280 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ddf89566a93081cb230bb9406a72ab2d3eada4a7 17-Jan-2008 Chris Lattner <sabre@nondot.org> This commit changes:

1. Legalize now always promotes truncstore of i1 to i8.
2. Remove patterns and gunk related to truncstore i1 from targets.
3. Rename the StoreXAction stuff to TruncStoreAction in TLI.
4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions.
5. Mark a wide variety of invalid truncstores as such in various targets, e.g.
X86 currently doesn't support truncstore of any of its integer types.
6. Add legalize support for truncstores with invalid value input types.
7. Add a dag combine transform to turn store(truncate) into truncstore when
safe.

The later allows us to compile CodeGen/X86/storetrunc-fp.ll to:

_foo:
fldt 20(%esp)
fldt 4(%esp)
faddp %st(1)
movl 36(%esp), %eax
fstps (%eax)
ret

instead of:

_foo:
subl $4, %esp
fldt 24(%esp)
fldt 8(%esp)
faddp %st(1)
fstps (%esp)
movl 40(%esp), %eax
movss (%esp), %xmm0
movss %xmm0, (%eax)
addl $4, %esp
ret



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46140 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
5080f4d9919d39b367891dc51e739c571a66036c 11-Jan-2008 Chris Lattner <sabre@nondot.org> rename MachineInstr::setInstrDescriptor -> setDesc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45871 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
9c5525f4fa177e20077710c980f08e2f8de06e39 07-Jan-2008 Duncan Sands <baldrick@free.fr> Add missing newline at EOF.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45712 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
749c6f6b5ed301c84aac562e414486549d7b98eb 07-Jan-2008 Chris Lattner <sabre@nondot.org> rename TargetInstrDescriptor -> TargetInstrDesc.
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
69244300b8a0112efb44b6273ecea4ca6264b8cf 07-Jan-2008 Chris Lattner <sabre@nondot.org> Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects
that it is cheap and efficient to get.

Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.

Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
43dbe05279b753aabda571d9c83eaeb36987001a 07-Jan-2008 Owen Anderson <resistor@mac.com> Move even more functionality from MRegisterInfo into TargetInstrInfo.

Some day I'll get it all moved over...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45672 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
f6372aa1cc568df19da7c5023e83c75aa9404a07 01-Jan-2008 Owen Anderson <resistor@mac.com> Move some more instruction creation methods from RegisterInfo into InstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45484 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
641055225092833197efe8e5bce01d50bcf1daae 01-Jan-2008 Chris Lattner <sabre@nondot.org> Fix a problem where lib/Target/TargetInstrInfo.h would include and use
a header file from libcodegen. This violates a layering order: codegen
depends on target, not the other way around. The fix to this is to
split TII into two classes, TII and TargetInstrInfoImpl, which defines
stuff that depends on libcodegen. It is defined in libcodegen, where
the base is not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45475 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
d10fd9791c20fd8368fa0ce94b626b769c6c8ba0 31-Dec-2007 Owen Anderson <resistor@mac.com> Move copyRegToReg from MRegisterInfo to TargetInstrInfo. This is part of the
Machine-level API cleanup instigated by Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45470 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
84bc5427d6883f73cfeae3da640acd011d35c006 31-Dec-2007 Chris Lattner <sabre@nondot.org> Rename SSARegMap -> MachineRegisterInfo in keeping with the idea
that "machine" classes are used to represent the current state of
the code being compiled. Given this expanded name, we can start
moving other stuff into it. For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.

Update all the clients to match.

This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 31-Dec-2007 Chris Lattner <sabre@nondot.org> Add new shorter predicates for testing machine operands for various types:
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on
switching everything over, so new clients should just start using the
shorter names.

Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(),
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
9a1ceaedc282f0cae31f2723f4d6c00c7b88fe90 30-Dec-2007 Chris Lattner <sabre@nondot.org> Use MachineOperand::getImm instead of MachineOperand::getImmedValue. Likewise setImmedValue -> setImm


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45453 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parc.h
parc.td
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrFormats.td
parcInstrInfo.cpp
parcInstrInfo.h
parcInstrInfo.td
parcRegisterInfo.cpp
parcRegisterInfo.h
parcRegisterInfo.td
parcSubtarget.cpp
parcSubtarget.h
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
fc643c5e88c596f217750dd91fcc66488dfed73d 29-Dec-2007 Chris Lattner <sabre@nondot.org> remove attribution from lib Makefiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45415 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
6e141fd04897e5eb4925bb6351297170ebd8a756 13-Dec-2007 Evan Cheng <evan.cheng@apple.com> Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
d64b5c82b97ad1b74eb9fd2f23257a7899b0c307 05-Dec-2007 Evan Cheng <evan.cheng@apple.com> Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether
the stored register is killed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
aee4af68ae2016afc5b4ec0c430e539c5810a766 02-Dec-2007 Evan Cheng <evan.cheng@apple.com> Remove redundant foldMemoryOperand variants and other code clean up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
e62f97c094dba44e4c259d20135167fa91912eea 01-Dec-2007 Evan Cheng <evan.cheng@apple.com> Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44479 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.h
b97aec663b1591e71c9ddee6dbb327d1b827eda5 13-Nov-2007 Dale Johannesen <dalej@apple.com> Add parameter to getDwarfRegNum to permit targets
to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44056 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
c69107ca11282a905c252d1b62091951087f13dc 13-Nov-2007 Bill Wendling <isanbard@gmail.com> Unifacalize the CALLSEQ{START,END} stuff.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44045 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
0f8d9c04d9feef86cee35cf5fecfb348a6b3de50 13-Nov-2007 Bill Wendling <isanbard@gmail.com> Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).

This can only result in tears...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44037 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
f191c80cd79ee35e47b5a4feed98d687782dfe85 11-Nov-2007 Anton Korobeynikov <asl@math.spbu.ru> Use TableGen to emit information for dwarf register numbers.
This makes DwarfRegNum to accept list of numbers instead.
Added three different "flavours", but only slightly tested on x86-32/linux.
Please check another subtargets if possible,


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43997 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
parcRegisterInfo.td
ca0ed744852a7d9625572fbb793f65e81225a3e8 05-Nov-2007 Duncan Sands <baldrick@free.fr> Eliminate the remaining uses of getTypeSize. This
should only effect x86 when using long double. Now
12/16 bytes are output for long double globals (the
exact amount depends on the alignment). This brings
globals in line with the rest of LLVM: the space
reserved for an object is now always the ABI size.
One tricky point is that only 10 bytes should be
output for long double if it is a field in a packed
struct, which is the reason for the additional
argument to EmitGlobalConstant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43688 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f0a0cddbcda344a90b7217b744c78dccec71851c 19-Oct-2007 Evan Cheng <evan.cheng@apple.com> - Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but only returns the opcode of the instruction post unfolding.
- Fix some copy+paste bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43153 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
58184e6878fdab651bc7c9a59dab2687ca82ede2 18-Oct-2007 Evan Cheng <evan.cheng@apple.com> Use SmallVectorImpl instead of SmallVector with hardcoded size in MRegister public interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43150 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
347d39f1fd8ad825a7ec5b8a3dce816723a56d42 14-Oct-2007 Evan Cheng <evan.cheng@apple.com> Revert 42908 for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42960 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
8ddde0a151c5297ae5694a4b9201b2d3fe56b196 12-Oct-2007 Dan Gohman <gohman@apple.com> Change the names used for internal labels to use the current
function symbol name instead of a codegen-assigned function
number.

Thanks Evan! :-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42908 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f96e4de403453e57aea75bcac1ed99af686d33c4 12-Oct-2007 Dan Gohman <gohman@apple.com> Set ISD::FPOW to Expand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42881 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
85d0aaa291f6984a29a3753d427a5f1be7ab7bd2 10-Oct-2007 Chris Lattner <sabre@nondot.org> Fix CodeGen/Generic/BasicInstrs.llx on sparc by marking divrem
illegal. Thanks to gabor for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42832 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
66f0f640820b61cf9db814b6d187bae9faf7279c 05-Oct-2007 Evan Cheng <evan.cheng@apple.com> - Added a few target hooks to generate load / store instructions from / to any
address (not just from / to frameindexes).
- Added target hooks to unfold load / store instructions / SDNodes into separate
load, data processing, store instructions / SDNodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42621 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
9efce638d307b2c71bd7f0258d47501661434c27 26-Sep-2007 Evan Cheng <evan.cheng@apple.com> Allow copyRegToReg to emit cross register classes copies.
Tested with "make check"!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42346 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
677ccc6e8b912e1a39259952b125954820062541 25-Sep-2007 Dan Gohman <gohman@apple.com> More explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42316 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.h
071a279e94e30d51aff3b46a4651d686982488a0 11-Sep-2007 Evan Cheng <evan.cheng@apple.com> Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41863 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
f7331b3dd72409e644833ecaf62a0f6db03c97ee 11-Sep-2007 Duncan Sands <baldrick@free.fr> Fold the adjust_trampoline intrinsic into
init_trampoline. There is now only one
trampoline intrinsic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
718cb665ca6ce2bc4d8e8479f46a45db91b49f86 07-Sep-2007 Owen Anderson <resistor@mac.com> Add lengthof and endof templates that hide a lot of sizeof computations.
Patch by Sterling Stein!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
35b35c5c320a71e4611fe2101452da685f8eeda0 30-Aug-2007 Evan Cheng <evan.cheng@apple.com> Add a variant of foldMemoryOperand to fold any load / store, not just load / store from / to stack slots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41597 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.h
8c1e6a119a68b258365677a9ee5176af3525a26f 03-Aug-2007 Dale Johannesen <dalej@apple.com> long double patch 2 of N. Handle it in TargetData.
(I've tried to get the info right for all targets,
but I'm not expert on all of them - check yours.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40792 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
36397f50343639ce9a25996f2d790c656791ab92 27-Jul-2007 Duncan Sands <baldrick@free.fr> Support for trampolines, except for X86 codegen which is
still under discussion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b8275a3f6f6497889653cb2452d82a46f92b4926 25-Jul-2007 Dan Gohman <gohman@apple.com> Don't ignore the return value of AsmPrinter::doInitialization and
AsmPrinter::doFinalization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40487 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
ffbaccae029ac238972e3814967260f029b6058a 21-Jul-2007 Evan Cheng <evan.cheng@apple.com> No more noResults.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40132 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
64d80e3387f328d21cd9cc06464b5de7861e3f27 19-Jul-2007 Evan Cheng <evan.cheng@apple.com> Change instruction description to split OperandList into OutOperandList and
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40033 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
2365f51ed03afe6993bae962fdc2e5a956a64cd5 14-Jul-2007 Anton Korobeynikov <asl@math.spbu.ru> Long live the exception handling!

This patch fills the last necessary bits to enable exceptions
handling in LLVM. Currently only on x86-32/linux.

In fact, this patch adds necessary intrinsics (and their lowering) which
represent really weird target-specific gcc builtins used inside unwinder.

After corresponding llvm-gcc patch will land (easy) exceptions should be
more or less workable. However, exceptions handling support should not be
thought as 'finished': I expect many small and not so small glitches
everywhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
03494d7c8ff981a7466da89fd6798313b2fb222e 14-Jul-2007 Evan Cheng <evan.cheng@apple.com> Fix for PR1540: Specify F0, F1 are sub-registers of D0, etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39843 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
8dc4b59b857fdffe79dca0a3a8516ddf942d5466 13-Jul-2007 Chris Lattner <sabre@nondot.org> Fix CodeGen/Generic/print-arith-fp.ll on sparc (PR1551)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39813 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
75ce010f7b6a47d9656e546b5db4a9cd77ba1dee 11-Jul-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com> Assert when TLS is not implemented.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39737 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
082ced939152e141d6e6e82dc56ecba13078ae18 11-Jul-2007 Chris Lattner <sabre@nondot.org> Fix an oversight: for modules with no other identifying target info,
the sparc backend should be preferred when running on sparcs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39142 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
87bdba6d6a1684373c94df0363a3b620de6dab6c 09-Jul-2007 Chris Lattner <sabre@nondot.org> The various "getModuleMatchQuality" implementations should return
zero if they see a target triple they don't understand.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38463 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
e644ef7b098460ce831220c780cbe25eaef3fb28 29-Jun-2007 John Criswell <criswell@uiuc.edu> Convert .cvsignore files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
cvsignore
ea859be53ca13a1547c4675549946b74dc3c6f41 22-Jun-2007 Dan Gohman <gohman@apple.com> Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from
TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37704 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6ae3626a4fda14e6250ac8d8ff487efb8952cdf7 18-May-2007 Evan Cheng <evan.cheng@apple.com> RemoveBranch() and InsertBranch() now returns number of instructions deleted / inserted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37193 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
1997473cf72957d0e70322e2fe6fe2ab141c58a6 03-May-2007 Devang Patel <dpatel@apple.com> Drop 'const'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
3e15bf33e024b9df9e89351a165acfdb1dde51ed 02-May-2007 Devang Patel <dpatel@apple.com> Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
794fd75c67a2cdc128d67342c6d88a504d186896 01-May-2007 Devang Patel <dpatel@apple.com> Do not use typeinfo to identify pass in pass manager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
97de9138217d6f76f25100df272ec1a3c4d31aad 01-May-2007 Evan Cheng <evan.cheng@apple.com> eliminateFrameIndex() change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36626 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
bf2c8b3c96f5c885095a10b0fcb29438f92d73c2 20-Mar-2007 Evan Cheng <evan.cheng@apple.com> Added MRegisterInfo hook to re-materialize an instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35205 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
d0b82b301d700217a716526f9329bb031e0d6578 07-Mar-2007 Anton Korobeynikov <asl@math.spbu.ru> Refactoring of formal parameter flags. Enable properly use of
zext/sext/aext stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
5e6df4647e15c50daea9a8a4e7f4f417a266335c 28-Feb-2007 Evan Cheng <evan.cheng@apple.com> PEI now passes a RegScavenger ptr to eliminateFrameIndex.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34707 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
0fa1b6d1b1ce5437c30585baddcba20e691d31e0 23-Feb-2007 Evan Cheng <evan.cheng@apple.com> By default, spills kills the register being stored.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34515 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
2ad9f17fee5d6395cd8db81668853e6dbf94060b 22-Feb-2007 Jim Laskey <jlaskey@mac.com> Simplify lowering and selection of exception ops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34488 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
62819f31440fe1b1415473a89b8683b5b690d5fa 21-Feb-2007 Jim Laskey <jlaskey@mac.com> Support to provide exception and selector registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34482 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
b371f457b0ea4a652a9f526ba4375c80ae542252 19-Feb-2007 Evan Cheng <evan.cheng@apple.com> Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
a284cbf667e11660840dc7bae3ee9eeaa3c7cbd2 19-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1207:
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
eceada67286f0d8081c23aedd242f4deeffa85ad 17-Feb-2007 Evan Cheng <evan.cheng@apple.com> Added getReservedRegs().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34376 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
d2b7cec527a0efa552628378ebca7a8ca63bb45d 14-Feb-2007 Chris Lattner <sabre@nondot.org> Generalize TargetData strings, to support more interesting forms of data.
Patch by Scott Michel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34266 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
bcc5f36765e8111c13873a0c0dc874c92385d808 29-Jan-2007 Nate Begeman <natebegeman@mac.com> Finish off bug 680, allowing targets to custom lower frame and return
address nodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
1ee29257428960fede862fcfdbe80d5d007927e9 26-Jan-2007 Jim Laskey <jlaskey@mac.com> Make LABEL a builtin opcode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
dc77540d9506dc151d79b94bae88bd841880ef37 23-Jan-2007 Evan Cheng <evan.cheng@apple.com> hasFP() is now a virtual method of MRegisterInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33455 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
58092e35a3368e130438cbc793c8f9dce2e4fe0f 20-Jan-2007 Chris Lattner <sabre@nondot.org> Teach TargetData to handle 'preferred' alignment for each target, and use
these alignment amounts to align scalars when we can. Patch by Scott Michel!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33409 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
c2b861da18c54a4252fecba866341e1513fa18cc 02-Jan-2007 Evan Cheng <evan.cheng@apple.com> Fix naming inconsistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32823 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
47857812e29324a9d1560796a05b53d3a9217fd9 31-Dec-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
Three changes:
1. Convert signed integer types to signless versions.
2. Implement the @sext and @zext parameter attributes. Previously the
type of an function parameter was used to determine whether it should
be sign extended or zero extended before the call. This information is
now communicated via the function type's parameter attributes.
3. The interface to LowerCallTo had to be changed in order to accommodate
the parameter attribute information. Although it would have been
convenient to pass in the FunctionType itself, there isn't always one
present in the caller. Consequently, a signedness indication for the
result type and for each parameter was provided for in the interface
to this method. All implementations were changed to make the adjustment
necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32788 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
95b2c7da5e83670881270c1cd231a240be0556d9 19-Dec-2006 Chris Lattner <sabre@nondot.org> eliminate static ctors for Statistic objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32703 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parcAsmPrinter.cpp
f5da13367f88f06e3b585dc2263ab6e9ca6c4bf8 07-Dec-2006 Bill Wendling <isanbard@gmail.com> What should be the last unnecessary <iostream>s in the library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32333 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcRegisterInfo.cpp
parcTargetMachine.cpp
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da 06-Dec-2006 Chris Lattner <sabre@nondot.org> Detemplatize the Statistic class. The only type it is instantiated with
is 'unsigned'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parcAsmPrinter.cpp
d17aa4b1f17f6d3fcd9079aef239ff16cfb5907f 06-Dec-2006 Chris Lattner <sabre@nondot.org> These asm printers shouldn't use assembly/writer.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32262 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
12a447898a3c68c1a9489f71b82650b46244d00a 30-Nov-2006 Evan Cheng <evan.cheng@apple.com> MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32034 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
c0f64ffab93d11fb27a3b8a0707b77400918a20e 28-Nov-2006 Evan Cheng <evan.cheng@apple.com> Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
of opcode and number of operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
6ce7dc2a97260eea5fba414332796464912b9359 15-Nov-2006 Evan Cheng <evan.cheng@apple.com> Properly transfer kill / dead info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31765 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
7ce45783531cfa81bfd7be561ea7e4738e8c6ca8 14-Nov-2006 Evan Cheng <evan.cheng@apple.com> Matches MachineInstr changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31712 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcRegisterInfo.cpp
parcRegisterInfo.h
0d53826f3653a789cf1491c3c40a1f4a993992b6 08-Nov-2006 Evan Cheng <evan.cheng@apple.com> Match tblegen changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31571 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
56fe5276ef0f64015b2fa9377fe8c81a00047533 04-Nov-2006 Chris Lattner <sabre@nondot.org> remove redundant/dead vars


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31434 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
9c5d4de8375f5111765519ac762427b2b8255df6 03-Nov-2006 Chris Lattner <sabre@nondot.org> silence warnings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31392 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
3ed469ccd7b028a030b550d84b7336d146f5d8fa 02-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
c35497fc2a8b984dbacede5b75b7be74c6756948 30-Oct-2006 Evan Cheng <evan.cheng@apple.com> All targets expand BR_JT for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31294 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ae2650a9cff478febe7d35d322dc3911b19ac30c 28-Oct-2006 Chris Lattner <sabre@nondot.org> don't dist internal readme


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31247 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
3d7d39ab1549f5ab7a929ec18a3e6481862cf247 24-Oct-2006 Rafael Espindola <rafael.espindola@gmail.com> fix warning about missing newline at end of file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31162 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
e87146ace88464be4ea4f8869830642c40178f1f 24-Oct-2006 Chris Lattner <sabre@nondot.org> implement uncond branch insertion for sparc to fix regressions from last night
due to branchfolding


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31157 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
8b2794aeff151be8cdbd44786c1d0f94f8f2e427 13-Oct-2006 Evan Cheng <evan.cheng@apple.com> Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
740c2e079929d1204edc0712cc49dc267076025b 12-Oct-2006 Chris Lattner <sabre@nondot.org> adjcallstackup/down clobbers the stack pointer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30909 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
af9db75943c11eebd642c1645d3c3f4003fe37e3 11-Oct-2006 Evan Cheng <evan.cheng@apple.com> Add properties to ComplexPattern.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30891 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
466685d41a9ea4905b9486fea38e83802e46f196 09-Oct-2006 Evan Cheng <evan.cheng@apple.com> Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30844 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
786225adf09e606c795ef68a1f789c12f37869f2 06-Oct-2006 Evan Cheng <evan.cheng@apple.com> Make use of getStore().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30759 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
29bd9e12d4fbd667c56225872b15ca490440da46 05-Oct-2006 Chris Lattner <sabre@nondot.org> Use getSectionForFunction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30739 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
c548428c5d7328592f4db6f6cd815af18b3152a3 04-Oct-2006 Evan Cheng <evan.cheng@apple.com> Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an
extra operand to LOADX to specify the exact value extension type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30714 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b74ed07bfd3af42331b1964c24c39912610a08f4 14-Sep-2006 Anton Korobeynikov <asl@math.spbu.ru> Adding dllimport, dllexport and external weak linkage types.
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30374 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
c356a572e34131bf767f35e3fecefae36fab744a 12-Sep-2006 Evan Cheng <evan.cheng@apple.com> Reflects MachineConstantPoolEntry changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30279 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
fde1b3bb2f15b74c713d98a79fcddaff1ac00dd1 08-Sep-2006 Jim Laskey <jlaskey@mac.com> 1. Remove condition on delete.

2. Protect and outline createTargetAsmInfo.

3. Misc. kruft.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30169 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
a0f3d17daac73c9c71aad497b298cbe82848f726 08-Sep-2006 Jim Laskey <jlaskey@mac.com> Make target asm info a property of the target machine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30162 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetMachine.h
8e8de8f7765a08ab3aa4f48b302cf19ccb9740e2 08-Sep-2006 Jim Laskey <jlaskey@mac.com> Break out target asm info into separate files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30161 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetAsmInfo.cpp
parcTargetAsmInfo.h
563321a2582851c653d0863e8e0bba3d483734f9 06-Sep-2006 Jim Laskey <jlaskey@mac.com> Separate target specific asm properties from the asm printers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30126 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
09e460662a8d7328da1b938d5581a6ef3740b51d 05-Sep-2006 Chris Lattner <sabre@nondot.org> Completely eliminate def&use operands. Now a register operand is EITHER a
def operand or a use operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30109 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
1911fd4f85aebcd4d7b8f27313c5a363eebf49cb 04-Sep-2006 Chris Lattner <sabre@nondot.org> Completely rearchitect the interface between targets and the pass manager.
This pass:

1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
output, move all this to common code, and give targets hooks they can
implement.
3. Commonalize the target population stuff between file emission and JIT
emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
paves the way for "fast -O0" stuff in the CFE later, and now LLC could
lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
which is now orthogonal to the fact that JIT'ing is being done.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30081 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
c4fa386471cb1ff9d1f2acc24e2d0682e5a17b1b 03-Sep-2006 Chris Lattner <sabre@nondot.org> Simplify target construction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30070 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
aca36b932958a7e4a27786dd76e37259fbaa67e0 02-Sep-2006 Chris Lattner <sabre@nondot.org> Use a couple of multiclass patterns to factor some integer ops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30039 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
1662239a5eb745de7b683b034ea199cb984328f2 02-Sep-2006 Chris Lattner <sabre@nondot.org> remove a bunch of comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30038 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
95514bae7309ffacfc0a79b267159dcfde2b7720 26-Aug-2006 Evan Cheng <evan.cheng@apple.com> SelectNodeTo now returns a SDNode*.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29901 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
9ade218533429146731213eacb7e12060e65ff58 26-Aug-2006 Evan Cheng <evan.cheng@apple.com> Select() no longer require Result operand by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29898 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6da2f3268d12a9e64f2635dbb94b63e1c4142f59 26-Aug-2006 Evan Cheng <evan.cheng@apple.com> Match tblgen changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29895 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
5ea64fd9eb0027ad20a66ea29211eef79d8842a0 18-Aug-2006 Chris Lattner <sabre@nondot.org> Constify some methods. Patch provided by Anton Vayvod, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29756 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
23329f5e0366af7cd9a96572ed8d6322696e5846 16-Aug-2006 Evan Cheng <evan.cheng@apple.com> SelectNodeTo() may return a SDOperand that is different from the input.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29726 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
64a752f7c7cf160f2887d0a16d5922359832c9c2 11-Aug-2006 Evan Cheng <evan.cheng@apple.com> Match tablegen changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29604 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
bb7b844bec6c53ac29ac4c50d7b3963e7f193efb 11-Aug-2006 Evan Cheng <evan.cheng@apple.com> CALLSEQ_* produces chain even if that's not needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29603 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
bd564bfc63163e31f320c3da9749db70992dc35e 08-Aug-2006 Chris Lattner <sabre@nondot.org> Start eliminating temporary vectors used to create DAG nodes. Instead, pass
in the start of an array and a count of operands where applicable. In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap. In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.

I updated a lot of code calling getNode that takes a vector, but ran out of
time. The rest of the code should be updated, and these methods should be
removed.

We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.

It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29566 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
2ef88a09b71f458ad415b35a1fb431c3d15d7eb1 08-Aug-2006 Evan Cheng <evan.cheng@apple.com> Match tablegen isel changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29549 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
2641cad180e94c0d26630d4ed455352f19be3d3e 28-Jul-2006 Evan Cheng <evan.cheng@apple.com> Remove InFlightSet hack. No longer needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29373 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
1790d44d0dbe3412e012be5e43b89e67064bdb86 16-Jun-2006 Chris Lattner <sabre@nondot.org> Don't pass target name into TargetData anymore, it is never used or needed.
Remove explicit casts to std::string now that there is no overload resolution
issues in the TargetData ctors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28830 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
a7dc4a59cbb19cfb5dbc0f9ca500f26dddfbb7f6 15-Jun-2006 Evan Cheng <evan.cheng@apple.com> Type of extract_element index operand should be iPTR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28797 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6848be1a27e08a89dcd4dd69f746471a608012cd 27-May-2006 Evan Cheng <evan.cheng@apple.com> Change RET node to include signness information of the return values. i.e.
RET chain, value1, sign1, value2, sign2, ...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28510 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
8b5fbc5cd460a9b03fd930527ced29932a7ccefc 26-May-2006 Chris Lattner <sabre@nondot.org> Add support for the missing FP condition codes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28482 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6a3d5a62f09d4093468525a07a0143cae0e9df41 25-May-2006 Evan Cheng <evan.cheng@apple.com> Assert if InflightSet is not cleared after instruction selecting a BB.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28459 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
afe358e7d46da9d29ba02fbbf81bdfb4ac4a4520 24-May-2006 Evan Cheng <evan.cheng@apple.com> Clear HandleMap and ReplaceMap after instruction selection. Or it may cause
non-deterministic behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28454 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
d74ea2bbd8bb630331f35ead42d385249bd42af8 24-May-2006 Chris Lattner <sabre@nondot.org> Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov! This is a step towards closing PR786.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcISelDAGToDAG.cpp
parcInstrInfo.h
parcSubtarget.cpp
8f7f4cc1aea1f4490669ab695c5a5f896f02a422 20-May-2006 Owen Anderson <resistor@mac.com> Sparc is big-endian.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28415 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
d988b32abad0634df07c18629e899f256935fde7 20-May-2006 Owen Anderson <resistor@mac.com> Make all of the TargetMachine subclasses use the new string TargetData methods.

This is part of the on-going work on PR 761.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28414 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
0f3ac8d8d4ce23eb2ae6f9d850f389250874eea5 18-May-2006 Evan Cheng <evan.cheng@apple.com> getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28378 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcRegisterInfo.cpp
parcRegisterInfo.h
c01d497255f0d344163178c5f827e8b73f6f04d6 17-May-2006 Evan Cheng <evan.cheng@apple.com> Remove PointerType from class Target


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28368 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
27aaa398ee3755f20ef7d185f80e6b40e4544e64 12-May-2006 Chris Lattner <sabre@nondot.org> Remove dead variable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28247 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
07000c6f01d8f57170f2d4c77a86d934bdc5c696 12-May-2006 Owen Anderson <resistor@mac.com> Refactor a bunch of includes so that TargetMachine.h doesn't have to include
TargetData.h. This should make recompiles a bit faster with my current
TargetData tinkering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28238 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetMachine.h
4632d7a57008564c4b0f8246e85bd813a200d2c6 09-May-2006 Chris Lattner <sabre@nondot.org> Split SwitchSection into SwitchTo{Text|Data}Section methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28184 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
4c15e3394671a87fbbbf21362079d11a4221654c 09-May-2006 Chris Lattner <sabre@nondot.org> Some notes and thoughts to myself


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28182 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
2d90ac7ca6117d3b160dde8a4f322c1079a6ffce 04-May-2006 Chris Lattner <sabre@nondot.org> Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28104 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
e53f4a055f74bded20d6129b4724ddd17fd199f6 04-May-2006 Chris Lattner <sabre@nondot.org> Move some methods out of MachineInstr into MachineOperand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parcRegisterInfo.cpp
63b3d7113d93fda622c4954c6b1d046ce029044e 04-May-2006 Chris Lattner <sabre@nondot.org> There shalt be only one "immediate" operand type!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcRegisterInfo.cpp
ea50fabfd4e5fad25a25b312f64a9b2a53363586 04-May-2006 Chris Lattner <sabre@nondot.org> Remove a bunch more SparcV9 specific stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
10f3597c4e0c13ecf0272b7ca0be741a91ade48c 04-May-2006 Chris Lattner <sabre@nondot.org> Remove some more unused stuff from MachineInstr that was leftover from V9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
a69571c7991813c93cba64e88eced6899ce93d81 03-May-2006 Owen Anderson <resistor@mac.com> Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.

This fixes PR 759.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetMachine.cpp
parcTargetMachine.h
cdf38c4edb892c356cfaa3c09c57728bc8d6bfd0 02-May-2006 Nate Begeman <natebegeman@mac.com> Extend printBasicBlockLabel a bit so that it can be used to print all
basic block labels, consolidating the code to do so in one place for each
target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28050 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
37efe6764568a3829fee26aba532283131d1a104 22-Apr-2006 Nate Begeman <natebegeman@mac.com> JumpTable support! What this represents is working asm and jit support for
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
3758552428737f2467cc58ae81a064789637b4aa 13-Apr-2006 Reid Spencer <rspencer@reidspencer.com> Add the README files to the distribution.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27651 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
957e1674e797c8880114fb27a3aa1c32f9967329 08-Apr-2006 Nate Begeman <natebegeman@mac.com> Disable switch lowering for targets based on the selection dag isel,
letting the code generator handle them directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27539 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
4188699f80c233a20b6ddc61570a8a8c1804cb85 07-Apr-2006 Jim Laskey <jlaskey@mac.com> Foundation for call frame information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27491 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
a99791886d5d4af2b900cd8cc1c9ed1677b6f0f4 28-Mar-2006 Jim Laskey <jlaskey@mac.com> Expose base register for DwarfWriter. Refactor code accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27225 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
414e682bac7c7fb618aef6bb0caf8ae501f7a2ed 27-Mar-2006 Jim Laskey <jlaskey@mac.com> Translate llvm target registers to dwarf register numbers properly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27180 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
f15485a8d0dff5f720b7ad27346129ac5c3ec503 27-Mar-2006 Nate Begeman <natebegeman@mac.com> SelectionDAGISel can now natively handle Switch instructions, in the same
manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks. The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.

This functionality is currently only enabled on x86, but should be safe for
every target. In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27156 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
420736dc85c01702bb7bc40495f8a4be5e5f8a6c 25-Mar-2006 Chris Lattner <sabre@nondot.org> #include Intrinsics.h into all dag isels


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27109 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ff70fe61ed4caaaa59a68f127102b348fb5f9355 24-Mar-2006 Jim Laskey <jlaskey@mac.com> D'oh - should be even numbered.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27088 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
47622e37215429c20d8278ff57496d840811cc13 24-Mar-2006 Jim Laskey <jlaskey@mac.com> Add dwarf register numbering to register data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27081 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
f1d78e83356a412e525c30ac90dabf090a8cfc99 23-Mar-2006 Jim Laskey <jlaskey@mac.com> Add support to locate local variables in frames (early version.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26994 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
bc641b9d8b5ecafe0137c1a49f4777608981d81b 23-Mar-2006 Chris Lattner <sabre@nondot.org> Eliminate IntrinsicLowering from TargetMachine.
Make the CBE and V9 backends create their own, since they're the only ones that use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26974 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
81e8097377529dc3b666f33bb525c49cfbac3f51 17-Mar-2006 Nate Begeman <natebegeman@mac.com> Remove BRTWOWAY*
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
04f96748574d447ea7bc6344a56f7e652d14f4f9 09-Mar-2006 Chris Lattner <sabre@nondot.org> Add support for 'special' llvm globals like debug info and static ctors/dtors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26628 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
9601a86a644fa036168ff173d3539550b2e9206e 05-Mar-2006 Chris Lattner <sabre@nondot.org> Copysign needs to be expanded everywhere. Note that Alpha and IA64 should
implement copysign as a native op if they have it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26541 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a34544d96c2e84fa84827e92e193f79353c64df0 27-Feb-2006 Chris Lattner <sabre@nondot.org> Don't print constant initializers, they may span lines now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26403 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
2deb87f201b5cf06edff12b9d9a03adc658ec416 21-Feb-2006 Chris Lattner <sabre@nondot.org> The HasNoV9 hack isn't needed here, now that tblgen knows that CustomDAGSchedInserter
instructions are expensive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26298 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
551bf3f80058a026b6a128dffd5530019e1df1b9 17-Feb-2006 Nate Begeman <natebegeman@mac.com> kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC
and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
368e18d56a87308045d341e85584597bfe7426e9 16-Feb-2006 Nate Begeman <natebegeman@mac.com> Rework the SelectionDAG-based implementations of SimplifyDemandedBits
and ComputeMaskedBits to match the new improved versions in instcombine.
Tested against all of multisource/benchmarks on ppc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26238 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
45090476be69a3f860e83f2c0fe2a2df7e1b4c89 15-Feb-2006 Chris Lattner <sabre@nondot.org> Sparc actually *DOES* have a directive for emitting zeros. In fact, it requires
it, because this:

.bss
X:
.byte 0

results in the assembler warning: "initialization in bss segment". Annoying.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26204 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
6fa1f57c66dc3cb762fffd99ec86c29d0cdc103e 15-Feb-2006 Chris Lattner <sabre@nondot.org> Fix SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c on Sparc.

The ABI specifies that there is a register save area at the bottom of the
stack, which means the actual used pointer needs to be an offset from
the subtracted value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26202 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
94dd29216cfcc2719be1cb8b7baa8cc19434e3ce 13-Feb-2006 Chris Lattner <sabre@nondot.org> Switch targets over to using SelectionDAG::getCALLSEQ_START to create
CALLSEQ_START nodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26143 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ad7a3e62085f776ec87e857e769e210a89a0d544 10-Feb-2006 Chris Lattner <sabre@nondot.org> Use the auto-generated call matcher. Remove a broken impl of the frameaddr/returnaddr
intrinsics.

Autogen frameindex matcher


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26107 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.td
f613fcb74161d63dd8c4f5fc1dc0d7527a18f43e 10-Feb-2006 Chris Lattner <sabre@nondot.org> Update to new-style flags usage, simplifying the .td file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26106 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcRegisterInfo.td
f26276661984b6ea77acf1105a4a18cb128d329d 09-Feb-2006 Chris Lattner <sabre@nondot.org> Done


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26091 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
3ab48ed72fabdc41d0f36b88a08671ab8868bb1c 09-Feb-2006 Chris Lattner <sabre@nondot.org> Enable LSR by default for SPARC: it is a clear win.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26090 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
7e9b26fc73425ae215fbc9c8010cb53059a93b3a 09-Feb-2006 Evan Cheng <evan.cheng@apple.com> Match getTargetNode() changes (now return SDNode* instead of SDOperand).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26085 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
9413678f91f4789902b69c4dc18b7205e95b0224 09-Feb-2006 Chris Lattner <sabre@nondot.org> add an option to turn on LSR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26080 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcTargetMachine.cpp
3029f920519e0871a5aad5d7c592281093953733 09-Feb-2006 Chris Lattner <sabre@nondot.org> Adjust to MachineConstantPool interface change: instead of keeping a
value/alignment pair for each constant, keep a value/offset pair.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26078 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
34167215a8da717b21e44f1b834dc34d15279bf1 09-Feb-2006 Evan Cheng <evan.cheng@apple.com> Change Select() from
SDOperand Select(SDOperand N);
to
void Select(SDOperand &Result, SDOperand N);


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26067 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c26017a4ae14ec63bc99831dd3edbb0362f56d06 05-Feb-2006 Chris Lattner <sabre@nondot.org> Fix the Sparc backend with Evan's recent tblgen changes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26009 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
900c826bc720e7b2349663392f5c8cb76aae4a01 05-Feb-2006 Evan Cheng <evan.cheng@apple.com> Use SelectRoot() as the entry to any tblgen based isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25998 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
e7c839ed5ae54563eee4934c420325c462c4d656 05-Feb-2006 Chris Lattner <sabre@nondot.org> remove V8 reference


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25991 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
7c90f73a1b06040d971a3dd95a491031ae6238d5 05-Feb-2006 Chris Lattner <sabre@nondot.org> Rename SPARC V8 target to be the LLVM SPARC target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25985 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
akefile
parc.h
parc.td
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrFormats.td
parcInstrInfo.cpp
parcInstrInfo.h
parcInstrInfo.td
parcRegisterInfo.cpp
parcRegisterInfo.h
parcRegisterInfo.td
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
c275dfa72751dc22507c33488a639bda9874e274 04-Feb-2006 Chris Lattner <sabre@nondot.org> Custom lower VAARG for the case when we are doing vaarg(double). In this
case, the double being loaded may not be 8-byte aligned, so we have to use
our standard bit_convert game.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25967 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c4b612ba2a5d9ea400b5a585efba494726e372b3 04-Feb-2006 Chris Lattner <sabre@nondot.org> Fix a nasty typo that broke functions with big stack frames.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25966 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
329a515fe758b36bd443279b0c4ee690517159b3 04-Feb-2006 Chris Lattner <sabre@nondot.org> fix a bug in my last checkin


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25965 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
0d913eaaed3202231e8a332b12153c4b7a5f43c5 04-Feb-2006 Chris Lattner <sabre@nondot.org> add a note


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25962 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
69d39091fe2af94d1ceebca526eabede98831a65 04-Feb-2006 Chris Lattner <sabre@nondot.org> Two changes:

1. Treat FMOVD as a copy instruction, to help with coallescing in V9 mode
2. When in V9 mode, insert FMOVD instead of FpMOVD instructions, as we don't
ever rewrite FpMOVD instructions into FMOVS instructions, thus we just end
up with commented out copies!
This should fix a bunch of failures in V9 mode on sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25961 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
parcTargetMachine.cpp
6184f9ca5eff6f7f55264d447638b7a27b806c9c 03-Feb-2006 Chris Lattner <sabre@nondot.org> Teach sparc to fold loads/stores into copies.
Remove the dead getRegClassForType method
minor formating changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25936 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
5ccc7225db0cb4d738045ade8e8c38d5345ac08a 03-Feb-2006 Chris Lattner <sabre@nondot.org> Implement isLoadFromStackSlot and isStoreToStackSlot


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25932 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
c8c0bb00a31381a8a2f838f53d72d230e9c77134 02-Feb-2006 Chris Lattner <sabre@nondot.org> %fcc is not an alias for %fcc0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25906 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
4032cf049d702545d7498d6b10e1d241037e2030 02-Feb-2006 Chris Lattner <sabre@nondot.org> correct an opcode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25905 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
b8973bd8f50d7321635e1e07b81a880a0828d185 31-Jan-2006 Evan Cheng <evan.cheng@apple.com> Allow the specification of explicit alignments for constant pool entries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c03468bafab3a20fdaa1c05d6c7f2ae1264fc3ea 31-Jan-2006 Chris Lattner <sabre@nondot.org> add a missing break that caused a lot of failures last night :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25851 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a34b898bc0506d317b6db45eff43b75dee2c5405 31-Jan-2006 Chris Lattner <sabre@nondot.org> okay, one more


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25847 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
fabec5bcb5248f34e88076a350990978191515bd 31-Jan-2006 Chris Lattner <sabre@nondot.org> another note


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25846 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
76e7a441cf04798eb183a375870c45bcaeacd9ae 31-Jan-2006 Chris Lattner <sabre@nondot.org> More notes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25845 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
a45b4925e19e6f70b37b27280e41cafd8a0095a3 31-Jan-2006 Chris Lattner <sabre@nondot.org> another one


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25844 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
302601c3436c3345822e319f7e2cd00099a65296 31-Jan-2006 Chris Lattner <sabre@nondot.org> add a note


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25843 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
af370f7c0c9dc10eb93efcdfe1016ba2f86c047b 31-Jan-2006 Chris Lattner <sabre@nondot.org> add conditional moves of float and double values on int/fp condition codes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25842 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
7a4d2913ea04b708c191595ad6f1841abd36b077 31-Jan-2006 Chris Lattner <sabre@nondot.org> treat conditional branches the same way as conditional moves (giving them
an operand that contains the condcode), making things significantly simpler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25840 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcISelDAGToDAG.cpp
parcInstrInfo.td
6788faa06ad77fbfb57db7bcf8bc6a79389775a6 31-Jan-2006 Chris Lattner <sabre@nondot.org> compactify all of the integer conditional moves into one instruction that takes
a CC as an operand. Much smaller, much happier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25839 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.td
97f91027e662a140b2927c8b84b8f1563a102434 31-Jan-2006 Chris Lattner <sabre@nondot.org> Add immediate forms of integer cmovs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25838 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
749d6fadf8ac410bb4083a3467ea9f0429c30455 31-Jan-2006 Chris Lattner <sabre@nondot.org> Shrinkify


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25837 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6dc83c777db605209aaa707bb23bd49dc8770228 31-Jan-2006 Chris Lattner <sabre@nondot.org> Add the full complement of conditional moves of integer registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25834 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
86638b94c113fdf98459bf862fd85e121fe77c7d 31-Jan-2006 Chris Lattner <sabre@nondot.org> Compile this:

void %X(int %A) {
%C = setlt int %A, 123 ; <bool> [#uses=1]
br bool %C, label %T, label %F

T: ; preds = %0
call int %main( int 0 ) ; <int>:0 [#uses=0]
ret void

F: ; preds = %0
ret void
}

to this:

X:
save -96, %o6, %o6
subcc %i0, 122, %l0
bg .LBBX_2 ! F
nop
...

not this:

X:
save -96, %o6, %o6
sethi 0, %l0
or %g0, 1, %l1
subcc %i0, 122, %l2
bg .LBBX_4 !
nop
.LBBX_3: !
or %g0, %l0, %l1
.LBBX_4: !
subcc %l1, 0, %l0
bne .LBBX_2 ! F
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25833 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b716343851c2e38a6df423c8efba998f577521e5 31-Jan-2006 Chris Lattner <sabre@nondot.org> I don't see why this optimization isn't safe, but it isn't, so disable it


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25829 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
2adc05cf5b786d0c82b45b708e01ced8cbf015d9 30-Jan-2006 Chris Lattner <sabre@nondot.org> Fix FP constants, and the SparcV8/2006-01-22-BitConvertLegalize.ll failure from last night


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25819 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
3772bcb33347f9e3615f3854c82323fa53e5765f 30-Jan-2006 Chris Lattner <sabre@nondot.org> Revamp the ICC/FCC reading instructions to be parameterized in terms of the
SPARC condition codes, not in terms of the DAG condcodes. This allows us to
write nice clean patterns for cmovs/branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25815 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
9072c05cd8b1739244d8c669fb92c3415d01dccc 30-Jan-2006 Chris Lattner <sabre@nondot.org> Compile:

uint %test(uint %X) {
%Y = call uint %llvm.ctpop.i32(uint %X)
ret uint %Y
}

to:

test:
save -96, %o6, %o6
sll %i0, 0, %l0
popc %l0, %i0
restore %g0, %g0, %g0
retl
nop

instead of to 40 logical ops. Note the shift-by-zero that clears the top
part of the 64-bit V9 register.

Testcase here: CodeGen/SparcV8/ctpop.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25814 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
5295de7c41058e7e89cbdc255f86e8c623566f5a 30-Jan-2006 Chris Lattner <sabre@nondot.org> If the target has V9 instructions, this pass is a noop, don't bother
running it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25811 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
b34d3fd4cf8f7882afd320b83f564146875d5116 30-Jan-2006 Chris Lattner <sabre@nondot.org> When in v9 mode, emit fabsd/fnegd/fmovd


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25810 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
76afdc9a80cf078aebd0ec62dba0bfafe498b1dc 30-Jan-2006 Chris Lattner <sabre@nondot.org> First step towards V9 instructions in the V8 backend, two conditional move
patterns. This allows emission of this code:

t1:
save -96, %o6, %o6
subcc %i0, %i1, %l0
move %icc, %i0, %i2
or %g0, %i2, %i0
restore %g0, %g0, %g0
retl
nop

instead of this:

t1:
save -96, %o6, %o6
subcc %i0, %i1, %l0
be .LBBt1_2 !
nop
.LBBt1_1: !
or %g0, %i2, %i0
.LBBt1_2: !
restore %g0, %g0, %g0
retl
nop

for this:

int %t1(int %a, int %b, int %c) {
%tmp.2 = seteq int %a, %b
%tmp3 = select bool %tmp.2, int %a, int %c
ret int %tmp3
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25809 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcISelDAGToDAG.cpp
parcInstrInfo.td
6f63001214215287b9bfe6cc066ab7caf83acb62 30-Jan-2006 Chris Lattner <sabre@nondot.org> Two changes:
1. Default to having V9 instructions, instead of just V8.
2. unless -enable-sparc-v9-insts is passed, disable V9 (for use with llcbeta)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25807 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
dea9528f7ffd838c333fa018ab7d2fa069db91dd 30-Jan-2006 Chris Lattner <sabre@nondot.org> When lowering SELECT_CC, see if the input is a lowered SETCC. If so, fold
the two operations together. This allows us to compile this:

void %two(int %a, int* %b) {
%tmp.2 = seteq int %a, 0
%tmp.0.0 = select bool %tmp.2, int 10, int 20
store int %tmp.0.0, int* %b
ret void
}

into:

two:
save -96, %o6, %o6
or %g0, 20, %l0
or %g0, 10, %l1
subcc %i0, 0, %l2
be .LBBtwo_2 ! entry
nop
.LBBtwo_1: ! entry
or %g0, %l0, %l1
.LBBtwo_2: ! entry
st %l1, [%i1]
restore %g0, %g0, %g0
retl
nop

instead of:

two:
save -96, %o6, %o6
sethi 0, %l0
or %g0, 1, %l1
or %g0, 20, %l2
or %g0, 10, %l3
subcc %i0, 0, %l4
be .LBBtwo_2 ! entry
nop
.LBBtwo_1: ! entry
or %g0, %l0, %l1
.LBBtwo_2: ! entry
subcc %l1, 0, %l0
bne .LBBtwo_4 ! entry
nop
.LBBtwo_3: ! entry
or %g0, %l2, %l3
.LBBtwo_4: ! entry
st %l3, [%i1]
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25806 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c6fd6cd65c88ef1f11da43c11be0152cb69013a7 30-Jan-2006 Chris Lattner <sabre@nondot.org> Move MaskedValueIsZero from the DAGCombiner to the TargetLowering interface,making isMaskedValueZeroForTargetNode simpler, and useable from other partsof the compiler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25803 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
4a397e0e9411cb32db242487c633c849e5794ed8 30-Jan-2006 Chris Lattner <sabre@nondot.org> Implement isMaskedValueZeroForTargetNode for the various v8 selectcc nodes,
allowing redundant and's to be eliminated by the dag combiner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25800 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
44ea7b1a6cc96121f9a558902742e19fa876d847 28-Jan-2006 Chris Lattner <sabre@nondot.org> Use V8ISD::CALL instead of ISD::CALL


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25716 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
184cc4ac60dc853fac3baa5e96d5f662d311b2fb 27-Jan-2006 Chris Lattner <sabre@nondot.org> initialize member vars


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25712 91177308-0d34-0410-b5e6-96231b3b80d8
parcSubtarget.cpp
ee625573b5b39b91441fc6ea23f3ba415abdc71f 27-Jan-2006 Nate Begeman <natebegeman@mac.com> Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET for
the same functionality. This addresses another piece of bug 680. Next,
on to fixing Alpha VAARG, which I broke last time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25696 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
19c95507443ebd4f1cee80917d540c8bd27f8fe1 27-Jan-2006 Evan Cheng <evan.cheng@apple.com> Subtarget feature can now set any variable to any value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25678 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
cedc6f4b30c1fd5f7ad1df0b65b870e6f107e8ff 27-Jan-2006 Chris Lattner <sabre@nondot.org> PHI and INLINEASM are now built-in instructions provided by Target.td


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25674 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcInstrInfo.td
4dcfaac2e390fdd0e8a562aeccb666178bd8664c 26-Jan-2006 Chris Lattner <sabre@nondot.org> Rest of subtarget support, remove references to ppc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25642 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcISelDAGToDAG.cpp
parcSubtarget.cpp
parcSubtarget.h
0d170a7969e7e36ad00afe596f2937f0c74d2b49 26-Jan-2006 Chris Lattner <sabre@nondot.org> Add trivial subtarget support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25641 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parc.td
parcSubtarget.cpp
parcSubtarget.h
parcTargetMachine.cpp
parcTargetMachine.h
0577a22c678bd5e31047e6b8038c6917202271ee 25-Jan-2006 Evan Cheng <evan.cheng@apple.com> Set SchedulingForLatency to be the default scheduling preference for all.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25607 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
acc398c195a697795bff3245943d104eb19192b9 25-Jan-2006 Nate Begeman <natebegeman@mac.com> First part of bug 680:
Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7558b0e80c058c148ef9f45220bbbe6bc8a146dd 25-Jan-2006 Evan Cheng <evan.cheng@apple.com> Default scheduling preference is SchedulingForLatency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25603 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
bb978c7e98371cd253d6af4a2ba0b8cacdbd0aff 23-Jan-2006 Chris Lattner <sabre@nondot.org> remove the V8 simple isel


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25534 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcTargetMachine.cpp
parcV8ISelSimple.cpp
2c2c6c61f100bc7c3df873b11203fcea1b5e18fe 23-Jan-2006 Chris Lattner <sabre@nondot.org> Add explicit #includes of <iostream>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25515 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parcAsmPrinter.cpp
86a5484079abc8a20f24066aaf3f5efcccebb673 22-Jan-2006 Chris Lattner <sabre@nondot.org> Add explicit #includes of <iostream>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25509 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
46030a6b0ae6aabea0ab5b0a458fa121eeecaaa3 19-Jan-2006 Chris Lattner <sabre@nondot.org> implement support for f32 arguments past the first 6 words


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25450 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
99cf50937d55381fbcdb506e61fb46ade774e7ee 16-Jan-2006 Chris Lattner <sabre@nondot.org> Silly Sparc is big endian. If we have to load args out of incoming stack slots
that are smaller than an int, make sure to adjust the frame pointer to take
this into consideration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25351 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
f7511b494310141fd0d9668025172df1c626964d 15-Jan-2006 Chris Lattner <sabre@nondot.org> Make sure that bool,byte and short arguments are the right type when loaded
from memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25346 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7f9975a793c575c3e4081e2b0dc3c950681cd316 15-Jan-2006 Chris Lattner <sabre@nondot.org> Disable a broken optimization


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25340 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
4fca01731a86dbbd758eaf94e4c7edfa36d38db7 15-Jan-2006 Chris Lattner <sabre@nondot.org> Don't print a label for the first MBB in a function.

Compile this:

%_2E_str_8 = external global [75 x sbyte]
implementation ; Functions:
declare int %printf(sbyte*, ...)
void %test()
%tmp.101 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([75 x sbyte]* %_2E_str_8, int 0, int 0) ) ; <int> [#uses=0]
unreachable
}

to this:

main_endif_2E_8:
save -96, %o6, %o6
sethi %hi(_2E_str_8), %l0
add %l0, %lo(_2E_str_8), %o0
call printf
nop

instead of this:

main_endif_2E_8:
save -96, %o6, %o6
sethi %hi(_2E_str_8), %l0
or %g0, %lo(_2E_str_8), %l1 ;; extra instruction
add %l1, %l0, %o0
call printf
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25335 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.td
934ea49a5581e02586edd313c59ce65914f3a59f 15-Jan-2006 Chris Lattner <sabre@nondot.org> Have legalize take care of DYNAMIC_STACKALLOC for us, implement llvm.stacksave/stackrestore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25332 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
bce8887ceef02a51b34814519f6c49492648eb00 15-Jan-2006 Chris Lattner <sabre@nondot.org> Implement DYNAMIC_STACKALLOC for V8


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25330 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7c419078876ca16ec82d4ddc5301f8fdaf0fe39e 15-Jan-2006 Chris Lattner <sabre@nondot.org> reorder passes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25326 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
d88fc03602947b5baa35c8b09fe8bcfa2b4a03c1 14-Jan-2006 Nate Begeman <natebegeman@mac.com> bswap implementation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25312 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b99329e8a0ec3b5a0004dd649e3546939f5c31e7 13-Jan-2006 Chris Lattner <sabre@nondot.org> expand unsupported stacksave/stackrestore nodes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25272 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
4bb91024ac2dcdff363488617ffcfb3b5c99fc49 12-Jan-2006 Chris Lattner <sabre@nondot.org> Fix branches on FP compares


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25249 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
138d322e966dc1f2641b35c73cb1d66379c4d20e 12-Jan-2006 Chris Lattner <sabre@nondot.org> fix a bug in my previous checkin


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25244 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
72878a463b4551e016a96cd8d0a5ffa1f73bf432 12-Jan-2006 Chris Lattner <sabre@nondot.org> Give V8ISD nodes symbolic names in dumps


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25243 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b3c77152c85c0ec67afcf77a096008706498d4f6 12-Jan-2006 Chris Lattner <sabre@nondot.org> invert the sense of this switch and its name


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25234 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
35ef913ec21de0f4f1b39c811b4335438717a9b8 11-Jan-2006 Nate Begeman <natebegeman@mac.com> Add bswap, rotl, and rotr nodes
Add dag combiner code to recognize rotl, rotr
Add ppc code to match rotl

Targets should add rotl/rotr patterns if they have them


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25222 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7ec6a6e96eeacfa2c4d9d14df6254951f35539d3 11-Jan-2006 Chris Lattner <sabre@nondot.org> This is no longer needed


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25219 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b9169ceb23367c177c26113dcc589d3f5c584182 11-Jan-2006 Chris Lattner <sabre@nondot.org> Use Evan's outflag stuff to implement V8cmpicc. This allows us to write a
pattern for SUBCCrr, and makes it trivial to add support for SUBCCri, eliminating
an instruction in the common "setcc X, imm" case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25212 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
3fbb726141c3c824b65a87df01a75e573d797db2 11-Jan-2006 Chris Lattner <sabre@nondot.org> Fix a bug in i32->f64 conversion lowering


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25211 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
1b8af84a8448b7803695f86785944fb3d0b75eb1 11-Jan-2006 Chris Lattner <sabre@nondot.org> Unbreak ret void :-/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25210 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
bda559e1158497706a7a44bffc0ca307dd9cad28 11-Jan-2006 Chris Lattner <sabre@nondot.org> Write this pattern in canonical form, allowing more patterns to match.
This implements Regression/CodeGen/SparcV8/xnor.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25209 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6da8d99f70826552b3a4e7bd5d1376881574b4b1 09-Jan-2006 Evan Cheng <evan.cheng@apple.com> New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace
hasInFlag, hasOutFlag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25155 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcRegisterInfo.cpp
cb83374bd99e403d70aa4aed95c701a0981dcc15 06-Jan-2006 Chris Lattner <sabre@nondot.org> silence a bogus gcc warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25129 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
e0bce71c42a021d897b51425dab16841a0ebc5bd 05-Jan-2006 Jim Laskey <jlaskey@mac.com> Had expand logic backward.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25105 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
abf6d1784b2d4bbcb7d20ab64881f77d755059f6 05-Jan-2006 Jim Laskey <jlaskey@mac.com> Added initial support for DEBUG_LABEL allowing debug specific labels to be
inserted in the code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25104 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
941334f0b01d2019212c12b386f1201ca9cecddd 05-Jan-2006 Evan Cheng <evan.cheng@apple.com> Remove some dead code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25102 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
2b4ea795a23ff9d900b9e1f26c92975ef78db1b6 26-Dec-2005 Evan Cheng <evan.cheng@apple.com> Added field noResults to Instruction.
Currently tblgen cannot tell which operands in the operand list are results so
it assumes the first one is a result. This is bad. Ideally we would fix this
by separating results from inputs, e.g. (res R32:$dst),
(ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding
'let noResults = 1' is the workaround to tell tblgen that the instruction does
not produces a result. It works for now since tblgen does not support
instructions which produce multiple results.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25017 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
171049d10f71fdeffdfd9592243d7af40db86c71 23-Dec-2005 Evan Cheng <evan.cheng@apple.com> * Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag operand (return void is not
lowered so it does not have a flag operand.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24997 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcRegisterInfo.cpp
2170cef7070dbb972caa72e68603e8452f2dee97 23-Dec-2005 Chris Lattner <sabre@nondot.org> not a good idea


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24991 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
330ea126679589c1f6e7f8e55cb5376eff2e3113 23-Dec-2005 Chris Lattner <sabre@nondot.org> fix something-o


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24987 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
74fa64b07205b1865bbbc77f33dfb09fdb24f142 23-Dec-2005 Chris Lattner <sabre@nondot.org> implement vaarg. Varargs now should work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24986 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
c4769bb5290de162a62a1ed461131c5187c13356 23-Dec-2005 Chris Lattner <sabre@nondot.org> implement vastart. The dag isel compiles this:

void test3(va_list Y);
void test2(int F, ...) {
va_list X;
va_start(X, F);
test3(X);
}

into this:

test2:
save -104, %o6, %o6
st %i5, [%i6+88]
st %i4, [%i6+84]
st %i3, [%i6+80]
st %i2, [%i6+76]
st %i1, [%i6+72]
add %i6, 72, %o0
st %o0, [%i6+-4]
call test3
nop
restore %g0, %g0, %g0
retl
nop

The simple isel emits:

test2:
save -96, %o6, %o6
st %i0, [%i6+68]
st %i1, [%i6+72]
st %i2, [%i6+76]
st %i3, [%i6+80]
st %i4, [%i6+84]
st %i5, [%i6+88]
or %g0, 1, %l0
or %g0, 4, %l1
umul %l0, %l1, %l0
add %l0, 7, %l0
and %l0, -8, %l0
sub %o6, %l0, %o6
add %o6, 96, %l0
add %i6, 72, %l1
st %l1, [%l0]
ld [%l0], %o0
call test3
nop
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24985 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
e6ee868a8d877b5b4be367d575b03388ee231e91 23-Dec-2005 Chris Lattner <sabre@nondot.org> remove benchmark list, remove issues addressed by the dag-dag isel


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24984 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
53e884587bd4b56c14dc39600eb655e77ae7b905 23-Dec-2005 Chris Lattner <sabre@nondot.org> make sure bit_converts are expanded


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24978 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
3cb7187d5f217dc7ecfff36357b0dd754fd0ae3b 23-Dec-2005 Chris Lattner <sabre@nondot.org> fix the int<->fp instructions, which apparently take a single float register
to represent the int part (because it's always 32-bits)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24976 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
a01874fc89d1f8e5e5013f86b9624110b434b966 23-Dec-2005 Chris Lattner <sabre@nondot.org> Use BIT_CONVERT to simplify this code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24975 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
a01c0ccb63c9c585141c925ae408d83f445350f6 22-Dec-2005 Chris Lattner <sabre@nondot.org> clean up .td file by using evan's new FLAG thing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24967 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
e81aecbae69d4b3bd24523ec87673632d3b0beec 21-Dec-2005 Jim Laskey <jlaskey@mac.com> Disengage DEBUG_LOC from non-PPC targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24919 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7669a51c347db563a8583c4a4466e3bbb30bdb44 21-Dec-2005 Chris Lattner <sabre@nondot.org> remove dead code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24896 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
aca0901dd3f02f83d13c2f818d0141d644d8e5b0 20-Dec-2005 Chris Lattner <sabre@nondot.org> Run lower-switch after lower-invoke.

Only run lower-allocations and lower-select for the simple isel


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24881 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
85e42b45ac05223882f24c17bff66b89daa0d6fc 20-Dec-2005 Chris Lattner <sabre@nondot.org> Reserve G1 for frame offset stuff and use it to handle large stack frames.
For example, instead of emitting this:

test:
save -40112, %o6, %o6 ;; imm too large
add %i6, -40016, %o0 ;; imm too large
call caller
nop
restore %g0, %g0, %g0
retl
nop

emit this:

test:
sethi 4194264, %g1
or %g1, 848, %g1
save %o6, %g1, %o6
sethi 4194264, %g1
add %g1, %i6, %g1
add %i1, 944, %o0
call caller
nop
restore %g0, %g0, %g0
retl
nop

which doesn't cause the assembler to barf.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24880 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
7c423b4df11d64593c450df9f645a27e509aae14 19-Dec-2005 Chris Lattner <sabre@nondot.org> Fix pifft by correcting the case when a i64/f64 straddles O5 and memory:
we were storing into [FP+88] instead of [FP+92].
Improve codegen by emitting [FP+92], instead of emitting a copy of FP into
another GPR which wouldn't be coallesced because FP isn't register allocated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24859 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
43875e63f323ee01a08e0f2709213f2f84ff66c7 19-Dec-2005 Chris Lattner <sabre@nondot.org> don't emit 'add %o6, 0, %o6' instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24857 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
eb0966693bf11411d659282b4e05788859159a4d 19-Dec-2005 Chris Lattner <sabre@nondot.org> Fix calls to functions returning i64


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24856 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
bcfdec73d1e9d4b6f398a9a13b7795c01a89f0f2 19-Dec-2005 Chris Lattner <sabre@nondot.org> Correct bool truncstore operand order


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24855 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
e2d97f8399d1d1072a926f9911f3d82f7730358d 19-Dec-2005 Chris Lattner <sabre@nondot.org> add the other bool zextload as well


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24854 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
a1251f24b5399bb8a0aabe778f8d0188a870d3c4 19-Dec-2005 Chris Lattner <sabre@nondot.org> implement zextload bool


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24853 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
61772c20ee51c7d244320f2b0b5a4d91f19de6b0 19-Dec-2005 Chris Lattner <sabre@nondot.org> mark some unsupported ops as unsupported


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24852 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
96d5bb79d49b4ec67aa9a44af2d7f41bcfbab1d3 19-Dec-2005 Chris Lattner <sabre@nondot.org> Fix syntax for indirect calls. This fixes Olden/mst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24850 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6554beffe46033f654400d13c0ed6f7b602d8bf1 19-Dec-2005 Chris Lattner <sabre@nondot.org> Keep stack frames 8-byte aligned. This fixes olden/voronoi


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24849 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
97561fc2eb1cdccf482ea0f55b86f86b1def22e3 19-Dec-2005 Chris Lattner <sabre@nondot.org> apparently rdy isn't actually a psuedo instruction. Use rd %y


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24848 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
beecfd2b2dc94b2b164f40c4443cc0506f228ed7 19-Dec-2005 Chris Lattner <sabre@nondot.org> add fneg/fabs support for doubles


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24847 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parcInstrInfo.td
da5a7fd8d4bcf61e92e30ab2907ba01d30c0755a 19-Dec-2005 Chris Lattner <sabre@nondot.org> Various cleanups to this pass, no functionality change


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24846 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
f53d0bfbfd501d752fe313725083d1f295e30ba7 19-Dec-2005 Chris Lattner <sabre@nondot.org> add bool truncstores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24845 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
8ba0423660fd8d5c9397bb6142ee56f5aec73716 19-Dec-2005 Chris Lattner <sabre@nondot.org> Elimiante SP and FP, which weren't members of the IntRegs register class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24844 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcRegisterInfo.cpp
parcRegisterInfo.td
parcV8ISelSimple.cpp
379e6c03695c635608b5dc17402b93a8f7475b13 19-Dec-2005 Chris Lattner <sabre@nondot.org> The sun assembler only supports .xword in V9 mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24842 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
7a48e5018b10d2b4c123913b40df904bd5c66043 19-Dec-2005 Chris Lattner <sabre@nondot.org> Configure the asmwriter to allow constant pools to be printed correctly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24841 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.td
b04c5c8eb2f0574c473036f1e66086a771663300 19-Dec-2005 Chris Lattner <sabre@nondot.org> add support for integer extloads


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24840 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
20ad53ffd770a4012dcb3be7ee1a393d30337c4e 19-Dec-2005 Chris Lattner <sabre@nondot.org> Add support for undef


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24839 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcV8ISelSimple.cpp
311f8c21d0acd3276b6a77f08c5e60ad391bd388 19-Dec-2005 Chris Lattner <sabre@nondot.org> Add support for calls to external symbols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24838 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
e90ac3a3e7959143d7c92c50061b2c16e4124d9f 19-Dec-2005 Chris Lattner <sabre@nondot.org> we have no memcpy


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24837 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
b4d899e21ccb4414f671efd54b3f87dbcd751aae 18-Dec-2005 Chris Lattner <sabre@nondot.org> Fix a crash on a call with no arguments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24836 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
dab05f0e194ac06c2c733f18a698b707dfa99ec3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Change return lowering so that we can autogen the matching code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24832 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
2db3ff66f1183fa65bd5102ad255a798f76cb3b2 18-Dec-2005 Chris Lattner <sabre@nondot.org> Implement Calls for V8. This would be completely autogenerated except for
a small bug in tblgen. When that is fixed, we can remove the ISD::Call case
in Select.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24830 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
384e5efc0e0b23a0d6c51f991a1b382be0414a8c 18-Dec-2005 Chris Lattner <sabre@nondot.org> Implement the full V8 ABI for incoming arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24825 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcV8ISelSimple.cpp
eee99bd459ab17a498d076f27de313398b9d3d4d 18-Dec-2005 Chris Lattner <sabre@nondot.org> Push ops list, asm string, and pattern all the way up to InstV8. Move the
InstV8 class to the InstrFormats file where it belongs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24824 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
3308449afc6f1b8b8536e544e53bc6751c91b4e3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Give V8 select_cc, in the spirit of the PPC backend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24823 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
98f853698c5a68d06934c1b7560f3ab53261d311 18-Dec-2005 Chris Lattner <sabre@nondot.org> remove some unused instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24822 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
065c896b7ae10f7b34ad6c289ee157f490d6b1ea 18-Dec-2005 Chris Lattner <sabre@nondot.org> V8 doesn't have FP extload


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24821 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
d5aae0528132a130e2d8069c3deebe7e6a362759 18-Dec-2005 Chris Lattner <sabre@nondot.org> simplifications, fix typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24820 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
8fa54dc70239dc08cc3c93cb7513e0625be50eb4 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add frameindex support
Add support for copying (e.g. returning) doubles
Add support for F<->I instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24818 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
abfc2a73637a73ac6a9d2404ba1936c0fb6e64de 18-Dec-2005 Chris Lattner <sabre@nondot.org> Tighten up some checks


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24817 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
76acc872b3c63c26a83c2832ece6fa9b04786f24 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add constant pool support, including folding into addresses.
Pretty print addresses a bit, to not print [%r1+%g0]: just print [%r1]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24813 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.td
e1389ad43afa6b4f7449013fec7ad37fe8ca2bbd 18-Dec-2005 Chris Lattner <sabre@nondot.org> Teach the addressing mode stuff to fold "%lo" into 'ri' addressing modes,
allowing us to compile this:

to this:

%G1 = external global int
%G2 = external global int
void %test() {
%X = load int* %G1
store int %X, int* %G2
ret void
}

test:
save -96, %sp, %sp
sethi %hi(G1), %l0
ld [%l0+%lo(G1)], %l0
sethi %hi(G2), %l1
st %l0, [%l1+%lo(G2)]
restore %g0, %g0, %g0
retl
nop

instead of this:

test:
save -96, %sp, %sp
sethi %hi(G1), %l0
or %g0, %lo(G1), %l1
ld [%l1+%l0], %l0
sethi %hi(G2), %l1
or %g0, %lo(G2), %l2
st %l0, [%l2+%l1]
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24812 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
e357246c6b2f71fda64764b85e32d2004f5dd603 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add initial support for global variables, and fix a bug in addr mode selection
where we didn't select the operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24811 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
04dd673aea8676443bf8cf8875b0e80bfa1309a5 18-Dec-2005 Chris Lattner <sabre@nondot.org> Claiming that branch targets are registers is not very wholesome. Change them
to be basic blocks. Also, add uncond branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24810 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
456b9400dc7aecc6875f521fd4bc87d25c32865b 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add unordered comparisons


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24809 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
5b2dfc7cc15d95678a1830485cc85a36e2190ce8 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns to the rest of the int condbranches and some of the fp branches


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24808 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
4d55aca87aeac108980005912d8ea8733d6226e1 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add initial conditional branch support. This doesn't actually work yet due
to a bug in the scheduler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24807 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrFormats.td
parcInstrInfo.td
parcRegisterInfo.td
38abcb500fbb868514d83152cc178ecf2d7ba6e4 18-Dec-2005 Chris Lattner <sabre@nondot.org> Eliminate CMPri, which is a synonym for SUBCCri


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24805 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcV8ISelSimple.cpp
294974bd576c381d66af6e73159d0574af81d405 18-Dec-2005 Chris Lattner <sabre@nondot.org> add fneg,fabs,fsqrt instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24803 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcInstrInfo.td
b4d5172af93533e3325b647dd257810b236337aa 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for fround/fextend and the funny fsmuld instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24802 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
10c6aed73c79861c31e79402d2161821806efe6f 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add FP +,-,*,/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24801 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
558bfe0cf5392d7f8d48647ed1d88fd0f530c4c3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Give patterns to F3_3 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24800 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
d19fc65345c773af2e82a6e5227e4b020aab7d4c 17-Dec-2005 Chris Lattner <sabre@nondot.org> Implement 64-bit add/sub, make sure to receive and return 64-bit args with
the right halves in the right regs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24799 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
7087e57872f68978945be227aafd17d6d43ae03e 17-Dec-2005 Chris Lattner <sabre@nondot.org> implement div and rem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24798 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
ee3d5fba54c658382926cbd40ef471245b61b19c 17-Dec-2005 Chris Lattner <sabre@nondot.org> implement MULHU/MULHS for 64-bit multiplies


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24797 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
37949f5c2b48c128e31361f638fdd44c966ee4d0 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for multiply, simplify Y register handling stuff, add RDY instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24796 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
parcRegisterInfo.td
parcV8ISelSimple.cpp
9034b883a463b37dbc4766ff7243dac3a27d0b11 17-Dec-2005 Chris Lattner <sabre@nondot.org> Make the addressing modes smarter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24795 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
parcInstrInfo.td
87a63f812c824116bef0aaa5a034bd7adf77eae8 17-Dec-2005 Chris Lattner <sabre@nondot.org> remove some unused instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24794 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
2cfdbb27165ee24b28a84f1a7cd3196b7afd2a5e 17-Dec-2005 Chris Lattner <sabre@nondot.org> add andn/orn/xorn patterns. This allows us to compile this:

long %test(ubyte, short, long %X, long %Y) {
%A = xor long %X, -1
%B = and long %Y, %A
ret long %B
}

to this:

test:
save -96, %sp, %sp
andn %i4, %i2, %i0
andn %i5, %i3, %i1
restore %g0, %g0, %g0
retl
nop

instead of this:

test:
save -96, %sp, %sp
xor %i2, -1, %l0
xor %i3, -1, %l1
and %i4, %l0, %i0
and %i5, %l1, %i1
restore %g0, %g0, %g0
retl
nop

The simpleisel emits: :(

test:
save -96, %sp, %sp
or %g0, -1, %l0
or %g0, -1, %l0
or %g0, -1, %l0
or %g0, -1, %l1
xor %i2, %l0, %l0
xor %i3, %l1, %l1
and %i4, %l0, %i0
and %i5, %l1, %i1
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24793 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
217aabf89ee0316bb4bbcc460bdc24900fe50a02 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add support for 64-bit arguments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24792 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
9a60ff654a0c633b284ef59981716fd189cb78c0 17-Dec-2005 Chris Lattner <sabre@nondot.org> Sparc doesn't have sext_inreg


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24791 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
53ec2035eb686c25013d47405fd0b178b60d59c8 17-Dec-2005 Chris Lattner <sabre@nondot.org> add patterns for FP stores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24790 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
d55e1ca5ef96821d8c96da6f0d79e3f96d810cdd 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add [reg+reg] integer stores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24789 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
d30a63063617d3ef6907ed4a5a2bbf9fa22b7d7c 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add store patterns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24788 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
b575baf57d49bc53883544b4585e25ae4585ab3f 17-Dec-2005 Chris Lattner <sabre@nondot.org> add fp load patterns, switch rest of loads and stores to use addrmodes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24786 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
1963783fab96e91cfcba59a4fa08d132040f0a7a 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add integer load[r+r] forms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24785 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
331355cf7da6613ff86732550ccc1d32ee1dce61 17-Dec-2005 Chris Lattner <sabre@nondot.org> Rename load/store instructions to include an RI suffix


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24784 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcV8ISelSimple.cpp
84e2abf116c236d9493995e65259f1352a925239 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for the rest of the loads. Add 'ri' suffixes to the load and store insts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24783 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
bc83fd96721eda272d90eafcb3a2a31ef9a2c366 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add basic addressing mode support and one load.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24782 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcISelDAGToDAG.cpp
parcInstrInfo.td
b71f9f8488f665ef042097eca28aeddb85e6c2ee 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use a combination of sethi and or to build arbitrary immediates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24780 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
57dd3bc46049c528858cdd02f76149d9525199fa 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use sethi to build large immediates with zeros at the bottom


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24779 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
d2cd46676c697137be7b57c04e3615ba2cdc00b2 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add shift and small immediate support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24778 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
f83cee6ac196faf14944948034f3163023a315cd 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add some basic reg-reg instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24777 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
e33a3ff942d33edfb619867c84b1d4589d3a582d 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add empty patterns to all F3_1 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24776 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
7b0902dcf8352ef93e35cc9cf264dbe4d2a198de 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add some simple integer patterns. This allows us to compile this:

int %test(int %A) {
%B = add int %A, 1
%C = xor int %B, 123
ret int %C
}

into this:

test:
save -96, %sp, %sp
add %i0, 1, %l0
xor %l0, 123, %i0
restore %g0, %g0, %g0
retl
nop

for example. I guess it would make sense to add reg/reg versions too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24774 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
4b4863188fe226c00d961ec611f2eb1ee8aac4c0 17-Dec-2005 Chris Lattner <sabre@nondot.org> Implement ret with operand, giving us this:

int %test(int %A) {
ret int %A
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24773 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
bc3d362d5bae59eb45ce275d8c4d9372847369dc 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add a pattern for 'ret'. This now compiles:

void %test() { ret void }

:)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24772 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
f3bf50d2c80da2d45b22e5c2458048c860754736 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add empty patterns for F3_2 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24771 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
a01b75758c740a3aba3458713b190f8ecadbe8e6 17-Dec-2005 Chris Lattner <sabre@nondot.org> Implement LowerArguments, at least for the first 6 integer args


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24770 91177308-0d34-0410-b5e6-96231b3b80d8
parcISelDAGToDAG.cpp
6c18b10ad4873ad7e1b1c1d589bcf844c46f4120 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add the framework for a dag-dag isel


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24769 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parc.h
parcISelDAGToDAG.cpp
parcTargetMachine.cpp
576e46fc67a388961fe6db41cbd64adb223361e2 17-Dec-2005 Chris Lattner <sabre@nondot.org> asmprinter done, added crucial missing step


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24767 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
967abf37c52ce7abc866d59ccf180574b0e30e06 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use the AsmPrinter for global variable init printing. This eliminates a
bunch of code and causes V8 to start using the fancy .asciz directive that
the sun assembler supports.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24766 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
b5e9eb6089676ba807da70348079fb6e8df3e40e 17-Dec-2005 Chris Lattner <sabre@nondot.org> Switch constant pool printing over to use the Shared AsmPrinter version


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24765 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
1dbed16fec1de205a7e69cc5c63798ec18e17f4c 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use the shared AsmPrinter code for some basic stuff. No functionality
change except for fewer .section directives emitted


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24764 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
0d8fcd3218ed93e338a2e7b845f358f1c6f74d58 17-Dec-2005 Chris Lattner <sabre@nondot.org> Convert the remaining instructions over, branches and calls. Fix a couple
minor bugs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24762 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcAsmPrinter.cpp
parcInstrFormats.td
parcInstrInfo.td
dc6938ac23f49c35ac551b6f5541e926a357de1b 17-Dec-2005 Chris Lattner <sabre@nondot.org> convert FP instructions to use an asmstring and operand list, allowing FP
programs to work on V8 again


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24761 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
0647bf69653df8f8f15e938341fe6e63daf5c3b6 16-Dec-2005 Chris Lattner <sabre@nondot.org> add some notes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24745 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
13e1501c91e3e56740a59eb7dab173c1d0cf5765 16-Dec-2005 Chris Lattner <sabre@nondot.org> Add a couple more instrs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24744 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
3c1c514fae69792a75c93ae1e91da42b7940137f 16-Dec-2005 Chris Lattner <sabre@nondot.org> remove some dead code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24743 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
17392e026a2f1fa9b62e38c44a447874055892bc 16-Dec-2005 Chris Lattner <sabre@nondot.org> asmprint pseudo instrs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24742 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrInfo.td
d4f2ab5e0059f8398a7882d6c6be50341641b97b 16-Dec-2005 Chris Lattner <sabre@nondot.org> Autogenerate asmprinter for F3_2 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24741 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrFormats.td
parcInstrInfo.td
1c4f4356032195f05c715b113b4ee5e2d4909915 16-Dec-2005 Chris Lattner <sabre@nondot.org> Switch F3_1 instructions over to use AsmStrings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24740 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcInstrFormats.td
parcInstrInfo.td
994b735de8f4bb9b79a967beb80442558625fcb0 16-Dec-2005 Chris Lattner <sabre@nondot.org> Plug in basic hooks for an autogenerated asm printer to fill in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24739 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parcAsmPrinter.cpp
96b84beb77d5209d2d5db4db9a6dc07461de2f7e 16-Dec-2005 Chris Lattner <sabre@nondot.org> Add operand info for F3_[12] instructions, getting V8 back to basic functionality.
With this, Regression/CodeGen/SparcV8/basictest.ll now passes. Lets hear it
for regression tests :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24738 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
03a83c90da38a3a3cf14f2003c730f0764e7b9cf 16-Dec-2005 Chris Lattner <sabre@nondot.org> Remove JIT support, which doesn't work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24736 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parcTargetMachine.cpp
parcTargetMachine.h
parcV8CodeEmitter.cpp
parcV8JITInfo.h
3ff57516839433131dd537ed2708a3e23f88ae77 16-Dec-2005 Chris Lattner <sabre@nondot.org> add some simple operand info


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24735 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6510b22cec7de4f0acc9965ec24c3668a6a8a87e 01-Dec-2005 Nate Begeman <natebegeman@mac.com> Support multiple ValueTypes per RegisterClass, needed for upcoming vector
work. This change has no effect on generated code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24563 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
ce8eb0c16b7197eaa886f90c1ef9ab9bbf1957c4 08-Nov-2005 Chris Lattner <sabre@nondot.org> Add a new option to indicate we want the code generator to emit code quickly,not spending tons of time microoptimizing it. This is useful for an -O0style of build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24233 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
72fe0af68fd6cd0d38f1a8710f0f6768c0684b60 29-Oct-2005 Chris Lattner <sabre@nondot.org> remove reference to this pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24088 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
08a6b3cf7ed105c49502716f835f0d8cd8be05b0 24-Oct-2005 Chris Lattner <sabre@nondot.org> do not wrap this whole file in namespace llvm


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23962 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8CodeEmitter.cpp
02d608bd5f48ed6b65d3df5772d3d9e07dce1b11 24-Oct-2005 Chris Lattner <sabre@nondot.org> Make this build with GCC 4.1, patch contributed by Vladimir A. Merzliakov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23956 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8CodeEmitter.cpp
5ef4d8dd6da50a38f2908aec3ad0e4bb1d0d4eae 22-Oct-2005 Chris Lattner <sabre@nondot.org> This file is entirely ifdef'd out


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23882 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
f5c6e6b7452a4aba6d3067896c3d95c4f9457c87 05-Oct-2005 Chris Lattner <sabre@nondot.org> silence some warnings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23637 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
97d5e6461a28790fa341d9e3b58f043db549dc6a 30-Sep-2005 Chris Lattner <sabre@nondot.org> Pass extra regclasses into spilling code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23537 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
8c4469840ebed11a87c76cab13a658f728560f1b 13-Sep-2005 Chris Lattner <sabre@nondot.org> This has been moved to the target-indep code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23333 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
8c65344a151381d4554a97454404d8e53c4c00cc 08-Sep-2005 Chris Lattner <sabre@nondot.org> ignore generated files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23263 91177308-0d34-0410-b5e6-96231b3b80d8
cvsignore
b1e1180ca0b32f37aa74d7ad703eeaf91e66c8fa 01-Sep-2005 Jim Laskey <jlaskey@mac.com> 1. Use SubtargetFeatures in llc/lli.

2. Propagate feature "string" to all targets.

3. Implement use of SubtargetFeatures in PowerPCTargetSubtarget.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23192 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
ecbce617ca5ca4c8f881c56297b9aac931d91744 19-Aug-2005 Chris Lattner <sabre@nondot.org> Split RegisterClass 'Methods' into MethodProtos and MethodBodies


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22929 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
e7af178ccf52506f69c53131f558c37cef90ce77 19-Aug-2005 Chris Lattner <sabre@nondot.org> Fix code that assumes the register info will be dumped into a target
namespace instead of the reg class namespace. Update getRegClassForType()
to use modified names due to tblgen change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22923 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
28e728d75a7a5b798f6814652a6dd97732b236ea 19-Aug-2005 Chris Lattner <sabre@nondot.org> put reg classes in namespaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22922 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
b8df7c22131368abd3e7d6e0e4b0fc6ee74f8427 17-Aug-2005 Jim Laskey <jlaskey@mac.com> Promote dependency for MathExtras.h out of Constants.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22839 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
cb6682fa44e13262bdef7dd22b4ba90f8c2e7b97 17-Aug-2005 Jim Laskey <jlaskey@mac.com> Culling out use of unions for converting FP to bits and vice versa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
7cbd525ba85ebe440d15fa359ec940e404d14906 16-Aug-2005 Nate Begeman <natebegeman@mac.com> Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nasty
fixme from the PowerPC backend. Emit slightly better code for legalizing
select_cc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
00b16889ab461b7ecef1c91ade101186b7f1fce2 27-Jul-2005 Jeff Cohen <jeffc@jolt-lang.org> Eliminate all remaining tabs and trailing spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
parcV8ISelPattern.cpp
bce81ae51ececbd03ffdb17d56c4a1206edfc52e 10-Jul-2005 Chris Lattner <sabre@nondot.org> Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode.
This is the last MVTSDNode.

This allows us to eliminate a bunch of special case code for handling
MVTSDNodes.

Also, remove some uses of dyn_cast that should really be cast (which is
cheaper in a release build).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22368 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
9fadb4c1c0a6d223aa468f9f72f8c2562dc66839 10-Jul-2005 Chris Lattner <sabre@nondot.org> Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22366 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
e014f89f3dfdd7a825536c188f585fec41692d50 28-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> some call work


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22303 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
0431c96cec9576611f06c513d6adcab0f950c18c 25-Jun-2005 Chris Lattner <sabre@nondot.org> Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22282 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
558bc88a00930fce283b240b7c9555f649a18f1b 18-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> core changes for varargs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
72b16d820cf49026a00c732abcbc039b5fb8673f 17-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> A start at a Sparc V8 Pattern ISel. Anyone want to implement the calling
convention? ;)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22247 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelPattern.cpp
29eeea5082eae754c047ab6a45a36618d31bf908 18-May-2005 Misha Brukman <brukman+llvm@gmail.com> Wrap long lines


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22125 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
27177f8c16d4033cb70310afd41ba16395a49efe 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21457 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetMachine.cpp
parcV8ISelSimple.cpp
b5f662fa0314f7e7e690aae8ebff7136cc3a5ab0 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21425 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
PMover.cpp
parc.h
parcAsmPrinter.cpp
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
parcV8CodeEmitter.cpp
parcV8ISelSimple.cpp
parcV8JITInfo.h
e4d5c441e04bdc00ccf1804744af670655123b07 15-Mar-2005 Chris Lattner <sabre@nondot.org> This mega patch converts us from using Function::a{iterator|begin|end} to
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.

This patch is contributed by Gabor Greif, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcV8ISelSimple.cpp
e7f96c515efb92e477217ab97cf1a617901daf79 01-Jan-2005 Chris Lattner <sabre@nondot.org> Substantially improve the code generated by non-folded setcc instructions.
In particular, instead of compiling this:

bool %test(int %A, int %B) {
%C = setlt int %A, %B
ret bool %C
}

to this:

test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
bl .LBBtest_1 !
nop
ba .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, 1, %i0
ba .LBBtest_3 !
nop
.LBBtest_2: !
or %g0, 0, %i0
ba .LBBtest_3 !
nop
.LBBtest_3: !
restore %g0, %g0, %g0
retl
nop

We now compile it to this:

test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
or %g0, 1, %i0
bl .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, %g0, %i0
.LBBtest_2: !
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19213 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
84c556e92a359d919b06450ac4f11cb7c0e1f616 17-Dec-2004 Chris Lattner <sabre@nondot.org> Remove unused #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19021 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
5761805d277f0dc6707b086602c76fd8ae4d2935 14-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> The mystery of Olden/tsp solved, and more opportunities for speedup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18932 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
6b260e2638dac0e6d5264ca505bbcb19026ef6dd 14-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Get rid of shifts by zero in most cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18931 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcV8ISelSimple.cpp
e171d5c812c308eb93ea611cae5c480279a82fbc 13-Dec-2004 Chris Lattner <sabre@nondot.org> Add some notes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18911 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
a04d959f0ce1343d34e7eff1ab9f228123235199 13-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Add V8 SPEC status.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18844 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
3ea78c4276dfbf5a078292ad8fd8dc952c4ff8b9 12-Dec-2004 Chris Lattner <sabre@nondot.org> Use the target triple to pick this target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18830 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
367c137f6a4b105fcd859bf665f8fdd3bb0e7f43 12-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Complete the list of MultiSource failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18826 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
326f378a8fb9e81bf41804a5a66bfdb5f76b67f3 12-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> hbd should be working now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18824 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
f731be0dd58a0abc049523dfec325b541d0b4f1b 12-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Finally enable the setcc-branch folding code.
Also, fix a bug where ubyte 255 would sometimes be output as -1. This
was afflicting hbd.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18823 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
81cf150b5d3fa565eb661ba6878a8b0c32d2e048 12-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Add (currently disabled) code for canFoldSetCC


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18820 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
6a8c46cde3bb3a982a8a928ebae8d21d0aba32a1 12-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Add stubs for setcc-branch folding support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18818 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
74be3a579403d27df14571a8c7ba7fe7ad28745a 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Print llvm code one function at a time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18805 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
b3a86a6d49234475a7f697648a0fb23e51cf64a2 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> JIT should print LLVM each function before selecting instructions for it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18803 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
56c5d7369bc06aa7555cc5436aeef4f3ae565fa4 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Bools are *also* not ints. Sigh. Furthermore, most of the TargetMachine
ctor parameters can be defaulted.

Print the transformed llvm code input to the instruction selector
when -print-machineinstrs is on, just like V9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18794 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
4658ba13a816f54f9a5e36fc6ae6456ed1b8e62d 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Look for many more moves to fold (previously, we only
*or g0, x add g0, x recognized * as a move)
or x, g0 add x, g0
or 0, x add 0, x
or x, 0 add x, 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18793 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
4f70b63ebcae70c8b875244f8976baa2097adcc2 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Make GEPs not suck so much:
* Don't emit the Index * ElementSize multiply if Index is a constant.
* Use a shift, not a multiply, if ElementSize is 1/2/4/8.
* If ElementSize fits in the immediate field of SMUL, then put it there.

Fix a bug where struct offsets might be truncated (ConstantSInt::get is
now used instead of ConstantInt::get).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18792 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
9d6ffb47b4f4c8a51ed100a90af9488ce6cc0778 11-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Update lists of failing benchmarks, including info on which
ones are failing in cbe.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18791 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
5aefa8a6fec1cdf2e8be74195df8d3739ce73c14 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Move -lowerselect later in the chain; some select instructions were
slipping through into the instruction selector, which can't deal with
them yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18758 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
c2e5f3635aa0cd9d10ca4315eec0ed7f161d55f5 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Add the rest of the multiply instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18757 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
1f42181f9917caeb5f441d66dbe7cf84aa94cd22 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Support binary operations with immediates for <= cInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18756 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
2b314430f7b961eede0d9a982f017bedde213c8a 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Update lists of failing benchmarks (except C++...something is the
matter with my sparcv8 libstdc++.a) and to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18755 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
57600548c7f83684567bf6eaefa8df0e9a758668 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Adjust paths: Sparc/V8 --> SparcV8


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18737 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
parc.td
8fe429d0c2777b5108e22bbdbc3465d1977710cf 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Make this file self-contained.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18736 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
09d8d67066c30907b162426bae9c387f68032238 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing MultiSource benchmarks. It works out to +5 -5, but I
think some of these might be the CFE's fault; a rebuild should come soon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18735 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
8ee6a2fb16c5e559d09dd6ef0b2a8816528f8e0a 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> When FpMOVDs appeared in pairs, we were mistakenly skipping over the latter of
each pair. I think this fixes that.

One of these days, I swear I'm going to get the hang of C++ iterators.
Really.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18734 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
3616f91b71d43d731a7dcff7861eeb61a5b0538d 09-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> We're continuing to make progress on MultiSource.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18714 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
20503bd958871db6d1bc6215a823ca925c11b9dd 09-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Bytes and shorts are aligned differently from words.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18713 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
3bf960ccacf7e226bc9ae66cb77b4098d058e71f 09-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Fix asm-printing directives (how did we not see this before...apparently,
everything was an int!)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18712 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
1d656455829c491aba63b7101e0a5207370aefb9 03-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> This code rotted - change it to call abort() until someone wants
to rewrite this to use relocations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18453 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8CodeEmitter.cpp
cb7a76283b00522b4955f7f21e7842c084791fba 30-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing benchmarks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18384 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
9e0b9028c7c7d9a1cac45778107b18162be927fd 30-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> If we're about to emit something like:

%f0 = fmovs %f0
%f1 = fmovs %f1

then just delete the FpMOVD pseudo-instruction instead. Also, add
statistics and debug printouts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18383 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
e4ed742588d6063c4cc778a57102f8c37e35d3b5 24-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing benchmarks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18202 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
31e575901f146b9e114b77341760657322b9a20f 24-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug in emitGEPOperation with large struct-member offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18201 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
88108b8cfa4911e95fc65484accb3676fa99010e 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Support shr long/ulong.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18173 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
4dd043f090b66b28ab621b5707c30e0641f04168 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Support printing ConstantAggregateZeros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18172 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
8a0c4fd0c6a2044fbace7e176e9617c2aa89a4a0 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update failing SingleSource test-case list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18171 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
fbe558c9937110109bc1eadc268c198511a841af 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> pseudocode for 64-bit lshr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18154 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
2041d0ca123d0c07bb34832aaccdb9c4cb804884 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add more known-failing tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18149 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
82a4795850d694b010b3dac0f48d9468496aa243 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add the rest of the logical instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18148 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
9ffcf9fdddf6e11ed59a70d440408d305a42436d 22-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add stub method for long shift codegen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18100 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
6f0b77221cb9bd82a7ac8b4551f69fab6a03eceb 22-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18099 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
c7b4f1033f4fa37ef3b0d68bc730979ca908f04f 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Implement setcc on longs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18088 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
4351857d78c6604b1f5dd7a83be2a8cc869ae423 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add all the rest of the ADD and SUB variants, some of which are important for
64-bit support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18087 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
5f91de2b386d46c49893a5c9a0efc2e94b288119 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Support add, sub, mul, div, rem on longs/ulongs (latter 3 by emitting libcalls).
Add a big comment containing my notes on how to do setcc for longs/ulongs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18086 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
b10fc0343ff7bb6bc42f8313fca9cfed9a19b412 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18085 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
79fe8334111f47c28100cd6729b66910ffbb40bf 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Fix extraStack calculation -- I think in fact it might be getting a bit *too*
much stack, but that's better than not enough, which leads to miscompilations.

Fix FP vaarg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18079 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
e1e2899e96a4e813c35c4e4ca6b399c52e39b339 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing benchmarks & to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18078 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
b95cbee93077979052e10771031ec209dd24294e 20-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Support most cases of vaarg (except double).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18055 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
087f0858ef9086402f0863e8f9bf8ea257e2f48d 20-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update failing test cases & to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18054 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
e6e7e3aaddd810bcb2ddc526ccc21ac20bb6a004 20-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Implement vacopy and vanext.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18031 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
1dc555c0d3a4abc2d0b6fe15ba2070b3ac884143 20-Nov-2004 Misha Brukman <brukman+llvm@gmail.com> Revert the patch that adds Function* for each 64-bit libc div/mul/rem that we
want to do; instead, we can use MachineInstr::addExternalSymbol(char*, bool) and
thus we don't have to modify the Module as we are code generating for it


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18025 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
d42b167e6126a8276d8590fa7ee93784cca297be 20-Nov-2004 Misha Brukman <brukman+llvm@gmail.com> Fix grammar


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18023 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
d159aafc26585073f244e7db63be148e434b4eaa 19-Nov-2004 Misha Brukman <brukman+llvm@gmail.com> Add protoypes for 64-bit long/ulong div, mul, and rem functions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18019 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
c11c44f55bade30416126f9be1591f17a3958c18 19-Nov-2004 Misha Brukman <brukman+llvm@gmail.com> Handle GhostLinkage case for completeness (should not be seen by the asm writer)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18015 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
b6c409a13d5219c05e3ffd25f87e8500518aaf43 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add VANext and VAArg stubs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18012 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
d90282db12db037fa2c0fbe855563225fe568a0a 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Implement va_start.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18011 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
4e459c465e861b5c97a1ccf96331a85df9ed0fef 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> First part of varargs support: getting all varargs which could possibly
be in registers into memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18006 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
2f95ed65e032f66016c55149b2178d61d400c15c 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> va_end can safely be codegen'd to nothing on v8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18004 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
9e672a2d1ba82c6038823ad2463ce561643b8a60 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> A very sorry stub implementation of varargs intrinsics...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18003 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
507bc71820fc4dcb2dc9ddf7372d8dca7ca5b8b1 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of expected test failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18002 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
a54df2503bbc4fee3d4d028a66891f5bf1af6bd3 19-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug in casting to long/ulong.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18001 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
7c0afe04ab82962ebd78a203ee17a5545170ea7b 18-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Rewrite LoadArgumentsToVirtualRegs, making it match almost exactly how
visitCallInst works. Support cast of byte/short/int to long.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17949 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
7ba2a43866674075578053aeb79ef945b047f7a2 18-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update current expected failures list - expand it to include all of
SingleSource. Update to-do list (open-coding refers to binary operations on
longs, not to passing them into functions, which we already support.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17948 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
4b92ed6d584aaa34eab7a3ef60d277617adb9aca 18-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Allocate fewer registers and tighten up alignment restrictions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17929 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
parcTargetMachine.cpp
c935cf111cfc80cac641e3b0ba463afd49f484b0 17-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17927 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
b662963d3bb72b47215606633c0f51745b824a5d 17-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing SingleSource Benchmarks


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17926 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
b3e0017763051820eb2487adfd021b473e463a77 17-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> We were (somehow) getting the wrong branch opcode for setcc float instrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17925 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
4cda59134110277607ce4c80e7372e0a8db40142 16-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing benchmarks


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17895 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
b354b7148eadcd5d30ceac80a2ddc1bbdfffbaef 16-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Correct the implicit-defs information for indirect and direct calls.
You can't have implicit defs that overlap explicit defs, or implicit
defs that alias one another.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17894 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
766d6f3b596e46eec4f96b403200205f682c023a 15-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of failing Benchmarks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17823 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
f28688e5273d674f5f4ff1c133ce6512d289ead1 15-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Expand Defs to encompass all the possibly-call-clobbered regs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17822 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
da9b3668c2fcc154d6bd2718ee5a5f70b8d0c8fa 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Fix problem with insertion point for ADJCALLSTACKDOWN.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17733 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
5179e41d6e6fc6fa23674677a4b026fcc4f3e949 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update lists of failing unit tests.
Exclude bigfib, so that we effectively exclude all C++ benchmarks.
Update to-do list: mention va_start.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17732 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
04fe7477b17fc5d2afc89fab2bfbb8d9cabadfcb 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Fix NotTest - round up extraStack to the nearest doubleword, if it is
not zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17728 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
parcV8ISelSimple.cpp
b31a828533c954d9f5298509e39d8c884c7cabf5 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update failing Benchmarks; point out that I'm skipping Shootout-C++.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17725 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
1c745818ffd80384fe3bd7c38c3d5324b640d819 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Update expected UnitTests failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17723 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
24b90c364766629e68c07b84c8e65c93790d4e43 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Rewrite outgoing arg handling to handle more weird corner cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17722 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
54799c2a516520c3f669c46439f8f6b250ac0274 14-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Support UndefValue emission.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17721 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
6931fd61c0695ca8a1d1170562b47f852e9ea70c 04-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Handle "call" operands of type long/ulong passed in registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17464 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
b982c42e65afa44b8a88d9ad3d7321bc129823cc 29-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Change name of target lib to conform to new naming scheme.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17347 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
b13fac70ca881d70ae93e1b321a7fd78f65d3391 29-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Remove dependency on MRegisterInfo::getRegClass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17346 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
6b9ae58c52effb37877c0325ec0f6c26f4e20a1f 23-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Adjust rules for building .inc files due to Reid's changes of Makefile.rules


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17169 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
d8e6e7f5635af63df4d52e511ad1957964c601aa 19-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> * Add baseline structural JIT code, but disable the JIT to allow llvm-gcc builds
- Support added for functions, basic blocks, constant pool, constants,
registers, and some basic support for globals, all untested
* Turn assert()s into abort()s so that unimplemented functions fail in release


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17143 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8CodeEmitter.cpp
d14d5b422371c1e10ed1866cd6e0c7ac33738a79 17-Oct-2004 Chris Lattner <sabre@nondot.org> Add support for unreachable and undef


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17074 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
d36047dbdb830c3ec659681c99f0348001b57653 15-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> The field is called `imm22', not simply `imm'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17003 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7 15-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Synthetic instructions RET and RETL need to have all 3 parameters specified


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17002 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
45a68268a40310dac90d751d40c74c5e81e15a01 15-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Class F2_1 already inherits the imm22 field from class F2


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17001 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
009d3f400cf0538be8369d17b76092817261585f 14-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Generate the SparcV8 code emitter from .td files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17000 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
17187e936a37171260b81b838a411db128fb1690 14-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> * In the F3_1 class, default asi to 0 because it's not currently used
* In the F3_3 class, remove mention of asi because it's not part of the format


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16999 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
59e12ed78962266a9529e58560aeb57330c67d38 14-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Add FSTOI, FDTOI (fp to integer cast) instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16996 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
8b6c1ff677fbd47f8d09d3bae37a388a6ae527c2 14-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Rewrite emitCastOperation, refactoring parts of it into emitIntegerCast, and
adding emitFPToIntegerCast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16995 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
941833a37c630c688da81b8e10576e0331623038 14-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Add list of libc procedures we'll use, at some point.
Update list of currently failing tests.
ADJCALLSTACK* support is done.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16994 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
299b39d35634712993f98c732224078dba2bdac4 10-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Fix assertion failure when calling or returning from a function which
returns 'bool' type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16884 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
85c08351cec796d541c18435c6e6c0edec343e93 10-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Implement eliminateCallFramePseudoInstr().
Wrap a long comment line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16883 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
9f0cecd4385d778c20859ad18ee43389e1337b33 10-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Model calls as *both* using *and* killing O0..O5, because callees use the
argument values passed in (so they're not dead until *after* the call),
and callees are free to modify those registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16882 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
50094edf960af0a259ba6931d0144f06dabec6c0 10-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Fix whitespace and wrap some long lines.
Deal with allocating stack space for outgoing args and copying them into the
correct stack slots (at least, we can copy <=32-bit int args).
We now correctly generate ADJCALLSTACK* instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16881 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
03203b423f7d4ee86a6040ba042e4a18fe965090 09-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> update according to tonight's info


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16866 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
0e2d466ce9b5e1b2d35f53993cd5d1ba64e4b45d 09-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Implement getModuleMatchQuality and getJITMatchQuality so that v8 will be the
default 32/BE target on sparc hosts, and ppc will continue to be the default
on other hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16865 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
parcTargetMachine.h
6672f86a4d9fe3c84c82aafbe8d4f6a43f3c2218 30-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> I think this will handle double args.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16618 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
d7bf501cc732f8ddcc30a6bd68d2fdbfe0f2145f 30-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Mark the instructions that have delay slots with the hasDelaySlot flag.
Add some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16611 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
870248b16491c9a9a604494b4e7aa94035af2158 30-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Use TargetMachine::hasDelaySlot() instead of our old switch statement
to find instrs that have delay slots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16610 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
49dd15402ba7f2fe4e741ad63283003eb69560dd 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Update list of shootout programs that should be working.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16595 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
374b36d5cf56e070ed7a557314616fc48711d8ea 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Tell the target description that calls clobber registers O0...O5.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16594 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
22ad67dd68d381f9b324b7fef13f15a80c71e9ef 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> FITOD is spelled "fitod", not "fitos". Ouch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16591 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
6fdd9e1f3566ec9cc7a66c0ca2cd742057ac95f0 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Don't use .quad to output double constants. The assembler must have a bug or
something, because the wrong bit patterns get output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16590 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
9ed920437aa57886d7c9d98089955e464c3a75e0 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Recognize FpMOVD as a move.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16586 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
a771347336c92d8e35d28e01dedea87bed34a753 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> add results


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16579 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
1df468ea9bb3887021946ed9e49ef26064628f9d 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Simplify copyConstantToRegister() for longs, using a pair of recursive calls.
Copy constant-pool entries' addresses into registers before loading out of them,
to avoid errors from the assembler.
Handle loading call args past the 6th one off the stack.
Add IMPLICIT_DEF pseudo-instrs for double and long arguments passed in register
pairs.
Use FpMOVD to copy doubles around instead of the horrible store-load thing we
were doing before.
Handle 'ret double' and 'ret long'.
Fix a bug in handling 'and/or/xor long'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16577 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8ISelSimple.cpp
9b8ed0e04aa2c2f18e39a4556006e08174c2eda1 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug recognizing moves: isMoveInstr should only treat ORs with %g0 as
moves, not all ORs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16576 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
bcf2ad296f014456ae7e54c68dcc83a5c8853d5f 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Use FpMOVD pseudo-instruction to move doubles around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16575 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
a036b539293faa39f373ac1f2ff6fdebad5290e3 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Add new FpMOVD pseudo-instruction, used to move doubles around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16574 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
8a9acd1e316db2af9a2570e78fc96248713e4a8d 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Fix double and long alignment.
Call the FPMover pass after register allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16573 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
b27df44b62949df6d6d302afe006d7a08785f1da 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Put quotes around argument to .section directive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16572 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
1162ed290055d0f9005fdd8587034b86312afb12 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Add createSparcV8FPMoverPass().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16571 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
15b2838035e5668ba4b756319204de7dec9a51d8 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Pass which converts FpMOVD (double move pseudoinstructions) to pairs
of FMOVS instrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16570 91177308-0d34-0410-b5e6-96231b3b80d8
PMover.cpp
f90a656a9fbbbf451d0022420e99aee6d3810e93 27-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> SparcV8 int regs are not only 32-bits in width, but they are 32-bit aligned!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16526 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
c6e743049983dca1c6904610fa3cb78bda39d67c 26-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Fix the copy-pasto that Brian noticed: V8 int regs are 32-bits wide, not 64.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16518 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
c95759c2f53fbc90334952491ec9c8739e565218 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Use the V8/V9 shared register file description


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16485 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
c42077d37194a1872dc402522d4d7a0e81f83047 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Combine the F2 and F3 instruction classes into one file for simplicity


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16484 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrFormats.td
parcInstrInfo.td
parcV8InstrInfo_F2.td
parcV8InstrInfo_F3.td
31b5edd2e996cbf28db7630a38d1a24dc13ec9a4 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Fix file header path


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16483 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
981eefd5f78a6039dd081ebd3b4b48f15fa43aa6 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Prettify formatting of the file, adjust paths to making V8 a subdir of Sparc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16482 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
2ec09e713e5cf665f1410340d4772b57b489160a 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> V8 is now a subdirectory of Sparc; adjust paths accordingly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16481 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
1002013ed383e1083a5b63698ab215a2fd0f5d99 13-Sep-2004 Chris Lattner <sabre@nondot.org> Changes to make this work with Jason's patch. I checked this by hand, but
would appreciate if others would also look at this to make sure I didn't
botch something obvious


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16312 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
bcb5562a5e67f6f21b4bf82c8f3338a82a7d358c 10-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Renamed file to SparcV8ISelSimple.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16267 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
f539ffe1b6a94354a93328b46311ab6976d090b9 08-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> This file does not need <iostream>, I think.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16245 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
74dfcf12000fcec60e1854f7bb78d481347a0a4b 02-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Back to compiling land for v8


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16138 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
nstSelectSimple.cpp
parcAsmPrinter.cpp
parcRegisterInfo.cpp
parcV8ISelSimple.cpp
0e362770d03a10ed49f75b75aa5673bc9026e3da 21-Aug-2004 Chris Lattner <sabre@nondot.org> Convert bytes to bits in alignment


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15971 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
105a56ac6b43ac38a5e2a692ed04bba6f7b7b677 16-Aug-2004 Chris Lattner <sabre@nondot.org> V8 never used the instrselectorgenerator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15791 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
01d0efba3982e98e2dc7bc534406fbf9fd1af137 16-Aug-2004 Chris Lattner <sabre@nondot.org> Code insertion methods now return void instead of an int.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15780 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
57f1b67c347b9ba1f8a1cdc3a55362d4f2aa8653 15-Aug-2004 Chris Lattner <sabre@nondot.org> These methods no longer take a TargetRegisterClass* operand.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15774 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
b8ce4c4118e07e53c091294001807f9d1d819200 15-Aug-2004 Chris Lattner <sabre@nondot.org> Update to no longer take MF as an argument


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15748 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.h
812402019264506bea49749b23d0ead1be9fde7c 09-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> Remove ClassPrefix variable as it's no longer used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15586 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
0b9bbd2244e5f518361cb0f73279b5ccb8e6ee25 09-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> The (future) SparcV8 JIT would do well to have a class prefix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15583 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
406e8cbb439a315ef106f35cd4d4e6040d407cf4 06-Aug-2004 Brian Gaeke <gaeke@uiuc.edu> Update the To-Do list according to my notes + assertions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15535 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
cdf70128606e5271dd20ffaf8a1261bdd69b1c53 04-Aug-2004 Chris Lattner <sabre@nondot.org> getValues is gone


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15494 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
0f6eab32d0b8880cde65a755e33e2c3a0b7d4ff6 31-Jul-2004 Chris Lattner <sabre@nondot.org> I'm pretty sure that ba is branch always, which is a barrier. Brg should
check this :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15357 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
1d6dc974631a8920a4e5a801a6c7cd4753ae8a8e 25-Jul-2004 Chris Lattner <sabre@nondot.org> I think that V8 should coallesce registers, don't you?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15192 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
7330248482817762c810c0b20165f8f1b59af283 18-Jul-2004 Chris Lattner <sabre@nondot.org> CPR fixes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14960 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcAsmPrinter.cpp
parcV8ISelSimple.cpp
7c4676f341a1abfe555e78fb2aac0a2d7cbe85cf 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add a class for pseudo-instructions. Use it.
Add IMPLICIT_USE and IMPLICIT_DEF, a la X86.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14884 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
7d7ac63366956473c8b3ef790447f576315e4c21 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add what will eventually be the TSFlags. Big switch(opcode) statements are bad.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14883 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.h
d303a2058cdfac5f11ae65762d68577f34e9abdb 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add special handling for pseudo-instructions (print them as comments).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14882 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
22b5cd8ac755359a6ba0b9492d376d5ca46ede12 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add to-do list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14881 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
812c488f0a2d9d0fb39c3eb1a2446214d5de7efc 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Do IMPLICIT_DEFs on incoming args' hard regs, to avoid confusing the regalloc.
Support single-fp incoming args.
Support single-fp outgoing args ('call' operands).
Support double-fp return values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14880 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
0cf0c3746995e8b95fc055cdf8e7210200cb942d 11-Jul-2004 Chris Lattner <sabre@nondot.org> Delete the allocate*TargetMachine function, which is now dead .
The shared command line options are now in a header that makes sense.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14756 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
71d24aab2d52986cc8203d0c268adb88b0001bc4 11-Jul-2004 Chris Lattner <sabre@nondot.org> Make these format a bit nicer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14747 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
d36c970a11633414e56ac1e03010dafa4a63b9c4 11-Jul-2004 Chris Lattner <sabre@nondot.org> Auto-registrate target


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14745 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
3a0858957aac2ed442340dbe936c8e63d3b142a2 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Support setcc on fp values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14687 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
4185d03dc5290550f0bad33764f3971ec9a74132 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add floating-point branches and compares. Compares don't complete
until the next cycle, and there's no interlock, so they effectively
have a delay slot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14686 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
parcInstrInfo.td
7e540fe2b6343b1481f492ed599a0261dc1bd413 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug where SwitchSection would fail to change to ".bss" successfully.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14685 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
ccdd70a5c0ac13020a5843b962b5a4bcc9a6559c 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug involving bool arguments to binary operators.
Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14684 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
2a9f539168e0488911e1f408f18b1970bbb489eb 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug in copying long constants to register pairs. We were getting
the top and bottom halves backwards...how embarrassing.
Support 'cast long to long' and other similar no-op casts to long.
Support 'ret long'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14683 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
f9a75460eee24c82a8d38e29d73ffc27cf360b05 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Support 'ret float'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14681 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
38343f6cfe505139118efa65b2ecabb7b5a59ff1 04-Jul-2004 Chris Lattner <sabre@nondot.org> Add #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14625 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcRegisterInfo.cpp
parcTargetMachine.cpp
parcV8ISelSimple.cpp
a9a582fbb6f0c9e24bebda73f0a13e560f2d3c5e 02-Jul-2004 Chris Lattner <sabre@nondot.org> Fix potential problems with unreachable basic blocks.

Also, while noone's looking, add support for constant expressions. Wait,
I said not to look!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14566 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
d2d5df207a60f4ad74fcf5f9485b92e84d3da9bf 01-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> Fix indentation to be 2 spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14512 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
ea091264144add21bbd29791a914ed30e44ff1c1 30-Jun-2004 Misha Brukman <brukman+llvm@gmail.com> visitSetCondInst() takes a parameter of type `SetCondInst'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14508 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
6bd555176318e802bfe987ab7d7f34eee45d1423 28-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Allow saving and restoring of double and float registers.
Allow copying of float registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14445 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
c53105c749faa681b9471bf99a762ed17b35264d 28-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add FITOS, FITOD, and F{ADD,SUB,MUL,DIV}{S,D}.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14444 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
8a0ae9e9ca918808d29379b92e245944eff70dd7 28-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support printing constant pool indices.
If we see an "unknown operand", abort so it's easier to fix it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14441 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
ec3227fe394c72838d3fabdc365d8520b6595890 28-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Trim whitespace.
Support cast of ints (and narrower) to float and double.
Support cast double to double (using load and store).
Abort if we see a CallInst or SetCondInst with long/fp args, instead
of producing bad code.
Support add, sub, mul, div of float and double.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14440 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
f54ef97abc23a14609dd3e8aea477dcce5b1b7b3 25-Jun-2004 Misha Brukman <brukman+llvm@gmail.com> * LowercaseString moved to StringExtras.h
* Wrap long line to 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14382 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
57ff2e3ee711c8d6ab908c6f03d5806b34d910f0 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add FSTOD and FDTOS conversion instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14372 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
495a0974f4943019da8fdc1df48ca3f0272646c8 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support cast float to float, cast double to float, and cast float to double.
(It's not yet clear how to copy doubles from register to register.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14371 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
60c73e4f238bc1b32e7d5f986e7c6b0d4dada72d 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Make the double-fp pseudo registers be "NamedRegs".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14366 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
13dc433df3cc0a6fa101d56ae61deea49be578b1 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Fix a dyn_cast in copyConstantToRegister which should have been a cast.
Compactify the code that emits copies of constant ints into registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14365 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
be81e82afcaa3e1b80ae26d7ec07f0dbccbccc58 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> The long integer pseudo-regs are history. So long, we hardly knew ye.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14364 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
c7fd0f46754c6fe04cd3fc6ea73273e4b6df6c00 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Use correct add*Imm form in more BuildMI calls.
Fix bug in emitGEPOperation where we weren't passing MBB, IP to getReg.
(hey, wouldn't a constant expression lowering pass be cool? huh huhuhuh)
Fix bug in emitGEPOperation where we might try to OR a constant into a
register which was too big to fit in the immediate field.
Support and, or, xor of longs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14363 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
af0492ea52fd322c4282ff637252fdba2d2159f8 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14362 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcRegisterInfo.cpp
e7f9e0b539f5bbd728cd806d25b7050109ae55dd 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.
Add fp stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14361 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
447330345376ff4879936c2c3eee1153993553ef 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.
Stub out the case analysis of int-to-fp casts (no code yet).
I think the number of operands passed to BuildMI for loads was wrong.
Support load and store of float and double.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14360 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
7548a540f74be48b3d900134e7220155aab1703a 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Strange as it may sound, we'll not use LDD/STD to store longs. For reasons of
representational consistency, we want to address the halves of each 64-bit value
separately.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14356 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
00e514ea6af096a966f9437e7c8ed7794b6c4f93 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support constant cast expressions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14355 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
f54d912e32d19037391a59fc37336486b280187d 22-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add pseudo-registers and register class for 64-bit integer values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14332 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
0280aa9795a528b7a6f6c31b1b95a2ba04e13730 21-Jun-2004 Misha Brukman <brukman+llvm@gmail.com> Order #includes as per style guide.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14305 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
30483737486d00e5c1c37f51138419aa08d8b5e3 20-Jun-2004 Chris Lattner <sabre@nondot.org> Move the IntrinsicLowering header into the CodeGen directory, as per PR346


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14266 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
9d2427c07437a4ad473ff79a4746e08b9e4b87b3 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> .zero doesn't work in the Solaris assembler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14231 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
a3c57624c0dbe7c054c42174e98c3811dd7222cf 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Get rid of selects the easy way


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14230 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
cfaf22445cb3293af4503df06fc2ce6ede284652 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Make visitAllocaInst() look more like its X86 counterpart.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14229 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
4f217fdd10df91b8beefb1c86591597b43b769f6 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Mess around with allocation order. In particular, I think we ought to be
using the local & in regs first because they are not clobbered by calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14228 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
fbaae01269b580ca12d7b5ae131986dd001041fe 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> JMPL has a delay slot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14227 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
0735920173891af2b868cce5b7aa98abd2420ff8 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Clean up the commented-out F3_3 stuff.
Replace it with a working class for FP instrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14226 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8InstrInfo_F3.td
f89cc655ab27bab517751f010c15fbe2ae1051d8 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Fix jmpl.
Add some FP moves.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14225 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
ceb224148e8425334e46fed686f911bbc99b5c98 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support printing base+offset pairs where the offset is a register.
Use this for printing the jmpl indirect-call instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14224 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
9d67ea0b611e39e3e58e98222c0dcc51cee412d7 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support intrinsic calls (although no particular intrinsics are supported yet).
Support indirect calls.
Support returning a float value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14223 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
562d5b0f6ddd341b5755829c636be82eaf31625c 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add load instructions for floating-point registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14217 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
c93a75223d715374f94603f66f2c35eaacb3168f 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support alloca instructions.
Support copying floating-point constants to registers.
Add assertion to visitCallInst to abort if we hit a NULL calledFunction, for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14216 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
6713d988a45d06f6f774af3ff2116bf9745040cd 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Make storeRegToStackSlot slightly shorter.
Make copyRegToReg return 1 instead of -1.
Edit a comment in emitPrologue().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14211 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
070bb4a8da5dcedcdf225aca857711bb4f754fa1 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Set the isBranch and isTerminator flags on branch instructions correctly.
Add a FIXME about the (currently unused) JMPL instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14210 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
8308d04dbcbd6e709ed49a7035203eabfd1ebb44 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Emit stores correctly; don't fail an assertion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14209 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
6c868a4c17b6a540161d2f1cba2b9529cbb772ce 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support generating machine instructions for Phi nodes (based on x86, but with
modifications for 1 LLVM BB --> many MBBs).
Fix store operand order: make it always be Base, Offset, SrcReg (think
"[ Base + Offset ] = SrcReg").
Rewrite visitBranchInst() to be even dumber (but working) -- give up on
the branch fallthrough trick, for the time being.
Make visitSetCondInst() work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14208 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
fc7fa3121162e2b50b308fbc2945c1082450b107 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Recognize more branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14207 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
09c130981456e54305c0d05f7842aa15164d0950 17-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Use addGlobalAddress and addMBB for call & branch targets instead of addPCDisp.
Abort if we see a PCRelativeDisp MachineOperand, to be safe. This matches
the X86 backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14202 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcAsmPrinter.cpp
parcV8ISelSimple.cpp
f70c22b019494723d0e706f93d6542dfaa6e73a5 17-Jun-2004 Chris Lattner <sabre@nondot.org> Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcAsmPrinter.cpp
parcRegisterInfo.cpp
parcV8ISelSimple.cpp
d6a10537457cea6f8fabc0bd7a3cd89d5ab593ae 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Fix thinko in visitor... ShiftInsts should currently be delegated
to visitBinaryOperator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14182 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
f405280acb887d418cb63b8d330b16e6c0c4e3a4 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> I think we'll use the standard lowering passes for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14179 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
e14e338724c694b1600357aff3bdec6a852df42a 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug generating code for void call instructions: don't call
getReg() on void value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14178 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
5eb64744d006f7350e26470975eea5696e247b92 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Squash a warning from the Solaris assembler by aligning the stack
on a double-word boundary instead of a single-word boundary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14177 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
446ae11d7c1a6a2a3ce5080bab60123f4dfe63e1 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Allow special-casing of operand printing based on opcode. Print
non-register, non-immed. arguments to SETHI and OR using %hi() and
%lo() respectively.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14176 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
9df92825e12afa744385a50a8a829f2eb5d1a6a1 15-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Support constant GEP expressions.
Support copying long constants to register pairs.
Support copying ConstantPointerNulls and ConstantPointerRefs to registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14175 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
143e0ea43d042f1fe1bbe7130aa981a1a0d04386 02-Jun-2004 Chris Lattner <sabre@nondot.org> Adjust to new TM interfaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13949 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
parcTargetMachine.h
429022bf830f25c1199a47aab5ffd9a0b3f17a1d 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for widening integral casts.

Flesh out the SetCC support... which currently ends in a little bit
of unfinished code (which is probably completely hilarious) for
generating the condition value splitting the basic block up into 4
blocks, like this (clearly a better API is needed for this!):

BB
cond. branch
/ / R1=1 R2=0
\ /
\ /
R=phi(R1,R2)

Other minor edits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13423 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
59dbff714cc44993a16522de15e89c56c604449d 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add a bunch more branches


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13422 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
9f56482a43cf6d65adc849b11721770536309bf4 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Flesh out GEP support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13421 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
6b1d2fa1d1cae181707d05b26c5e2e02c77eaa06 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add ADD with immediate


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13420 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
c3e970122a942dc46b0be1fb1d0ca757a711911d 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add forms of CMP, SUBCC, and a few branches, and some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13419 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
532e60c403a15b174c8aab874b198d21514ac408 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add stub support for GEPs.
Add support for branches (based loosely on X86/InstSelectSimple).
Add support for not visiting phi nodes in the first pass.
Add support for loading bools.
Flesh out support for stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13418 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
e302a7eb433b43434e021b90c477fdd281c2ccd5 07-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for copying bool constants to registers.
Disable the code that copies long constants to registers - it looks fishy.
Implement some simple casts: integral, smaller than longs, and equal-width
or narrowing only.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13413 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
ef8e48aae06d464e2f7b6c7d2b38e1eb2eca704b 13-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> I don't think we have to have 4 extra allocated (but unused) bytes on the stack.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12905 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcTargetMachine.cpp
3d11e8a6d383ad625e0878e1fe21891c3b448ee0 13-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> I started working on casts, but I don't have anything compilable yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12903 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
8005ed3bd7c9190e3e1bb474317b9fc4639e716a 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Don't print [%reg + 0], just print [%reg]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12759 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f3334ebbe3b707ed14c1736ff86d2e5ac26298f7 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> First version of code to handle loads. Stub function for handling stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12758 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
562cb16381ede505e1a76efc5aaab22b35cb808d 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Support loading arguments from %I0...%I5 into virtual registers in
function prologues, and fix an off-by-one in visitCallInst that was
putting call args into the wrong registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12757 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
d54c38b2f46208d79e0da536c38c9ae65cba0f96 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> It's setting up the call args right now, but on the callee side, it's
trying to get incoming args off the stack, instead of the %i0...%i6 regs,
which is wrong.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12756 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
4d0cda4d5c43fffdcfcd331a6f7d74428c217639 07-Apr-2004 Chris Lattner <sabre@nondot.org> This is a start on handling setcc instructions. As the comment notes, we
have no good way of handling this until the code generator is improved.
We should probably just emit V9 instructions in the meantime.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12745 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
6179047661ae9d2291ef58147934a2630591b126 07-Apr-2004 Chris Lattner <sabre@nondot.org> andd subcc instructions which is used to create the 'cmp' pseudo instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12744 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
0d538bbec2ebf84d615f3a3188c5f3b708646fb2 07-Apr-2004 Chris Lattner <sabre@nondot.org> Avoid emitting an extra copy on each 32-bit operation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12743 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
88ddd4a07de81a14a6c768fe5ac4c6a7481f838d 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Make generation of stack-slot loads and copies less ugly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12742 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
fa4bb09cf042dc0f30297082f55bc37f35c0f5f5 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug in printing loads.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12741 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
4be7ca5721ce045492d53652aa9229326c51a5b0 07-Apr-2004 Chris Lattner <sabre@nondot.org> Add support for shift instructions, wrap some long lines


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12740 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
a562efce355618a02a23ebd3e26d277b26d4e8d5 07-Apr-2004 Chris Lattner <sabre@nondot.org> Fix encoding of existing shift instructions, add rr shifts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12739 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
22ede709f6e62c495fe8af97dc8e81e82d5faeed 07-Apr-2004 Chris Lattner <sabre@nondot.org> Add a bunch more instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12737 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcInstrInfo.td
parcV8ISelSimple.cpp
f97b31e9cfb528e56603b123eb2a5426b400bd96 07-Apr-2004 Chris Lattner <sabre@nondot.org> Merge my changes with brians


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12736 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
0f51cc1759e2162485b5f9ee57b3b5bc8f5c6759 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add in some things I forgot, which Chris helpfully reminded me of...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12735 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
59e04e4889eb3af3a679ddd13f4e3048dfb354d2 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for the "Y" register, used by MUL & DIV.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12734 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
e88c9dc860dd636e38abdb4aab6e4fc8fff1cc27 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add UDIV, SDIV, and a few variants of WR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12733 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
2d4fa8faace6fec748f2a00b33ad7982df00e145 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Preliminary support for getting 64-bit integer constants into registers.
Preliminary support for division. It's gross because you have to initialize
the "Y" register, which is the top 32 bits of the thing you're dividing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12732 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
ff8282604a6a872536c188e5daff9a9b37b7d105 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Prune unnecessary #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12731 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
20117102c2e10fa2c0fa74965894e28751a3df34 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Simple delay slot filler pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12730 91177308-0d34-0410-b5e6-96231b3b80d8
elaySlotFiller.cpp
86a8790826c253dd56e10902abdcd7f87c2cbdaa 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add references to delay slot filler pass.
Fill in addPassesToJITCompile method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12729 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcTargetMachine.cpp
3a8ad62d4ffa9de99f8835fe9592d4d6ef0a2730 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> First attempt at handling frame index elimination.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12728 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
1c38175d6b7978768645fac271db435bef337a13 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> First attempt at special-casing printing of [%reg + offset] for
ld/st instructions - doesn't seem to work yet, but I think it's
just a typo or something somewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12727 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
856e4fc59ee13c84150dbef4e46795ca7883504e 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Delete reference to "the Mach-O Runtime ABI".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12726 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
ea8494bb89f5170b62e492585588fdb5f1ba64be 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Deal with call return values.
Don't put NOPs in delay slots at all. We'll have a fix-up pass later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12725 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
6c5526e56ec558f6308e33437b5f90d1c67768ed 02-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for many of the MRegisterInfo callbacks.
Eliminating call-frame pseudo instrs and frame indices are still stubs.
Flesh out the emitPrologue method based on better ABI knowledge.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12632 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
8542e08d15208d73c5146d6858d67b26effaf4ef 02-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add load, store, and NOP instructions.
Fix up comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12631 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
a778ca555aa49cf60222eb0e170b8ef4b02e6259 02-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for printing pc-relative displacements of functions (as used in
the CALL instruction).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12630 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f7e44ef8d54653cdfd8dfe39adfc5eabdf91cca2 02-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add support for call instructions (0-ary only for now).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12629 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
54cc3c2135bcab1a57d792d9026f72e6937934ca 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> The .type directive on Solaris uses the # character instead of @.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12454 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
6d339f9000055a59249cedea3ff22e497cc6bb60 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Fix bug in zero-extending of shorts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12453 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
032f80fbf1c3eb270cbbf551f73468513fd175e1 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Add UMULrr and SMULrr instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12452 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
79db7405f78fa009efc5a530addc9dda0894aa3e 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Use ! for comment char; it works in both Solaris as and GAS.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12451 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
f57e364f656030597179ce24b8fffa221bfcb949 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Make getClass more robust by adding cLong.
Add handling for Mul instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12450 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
cf47198a49a4d493a64e9f3c9aecbbbe6112f005 09-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Hmm, who left this sitting around in my tree


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12255 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
9b3c70261419bca20fa26e939116696a02f4e975 08-Mar-2004 Chris Lattner <sabre@nondot.org> Avoid allocating special registers a bit more robustly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12207 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
08f64c3321e9103d7a9a29baf0158cfced4cadc1 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Support return values of basic integer types.
Emit RETL instruction to return instead of funny JMPL.
Fix indentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12186 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcV8ISelSimple.cpp
a8056fabebbc23c080b7cda81ca8f74eedc1a585 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Sort stanzas into Sparc V8 book page number order.
Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12185 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.td
bda4a3c61aea14228dfab3d9ce956f870188eb8d 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Hack it so we do not try to allocate values to G0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12184 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
d69b3c58d3e6f2edc52bfe431522cd1db8db4652 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Make prolog align stack properly. Make epilog not touch any registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12183 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
a8b00cafc4b79f3ef05fdd1cdfc0d58f10740e69 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Emit register names in lowercase, as required by the assembler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12182 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
a98e0514175868cc4c6b5c31d02f36de8b973c8d 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Teach getRegClassForType where to find FP registers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12180 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
62aa28aef392ccde76888dbb444c567d3f95ef8a 05-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Asm output is looking a lot better; not correct for all operands yet though.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12143 91177308-0d34-0410-b5e6-96231b3b80d8
parcAsmPrinter.cpp
7a3ae1fbada713dc6b079debf2a5ad5ba32157f7 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Support -print-machineinstrs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12124 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
4acfd039f92fea3b02227020e4e28f2e5db2d92e 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Asm printer support, based on x86 - only prints mnemonics for now


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12113 91177308-0d34-0410-b5e6-96231b3b80d8
parc.h
parcAsmPrinter.cpp
parcTargetMachine.cpp
da69e7d9b3b6510eb4b0429e4ef4b563399fe7ca 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Double-FP pseudo-registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12112 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
775158d62abbe2548875b46dcbecf8b234930dd4 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Subtract instructions; minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12111 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcInstrInfo.td
parcV8ISelSimple.cpp
e7173b7e8ec1ac1bc4843dad84b0d84c3ad3e720 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Floating point regs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12110 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.td
e806173ab6f571f48e8b056fbd355ccef4371a23 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Simple copyConstantToReg support, SETHIi and ORri


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12107 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcInstrInfo.td
parcV8ISelSimple.cpp
bc1d27aa6e80022d507ce4811566b4af4257ee45 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Support add - note, still missing important copyConstantToRegister stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12106 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parcInstrInfo.td
parcV8ISelSimple.cpp
05b15fb075307d55a61694ebcb19bbc9b13aa9f8 01-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> TargetCacheInfo has been removed; its only uses were to propagate a constant
(16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's
dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in
the interest of not breaking things any more than they already are, I'm going
to leave the constant alone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12043 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.h
dce363d5ecf0f6add5541c853eb33214d910812f 29-Feb-2004 Chris Lattner <sabre@nondot.org> Adjust to change in TII ctor arguments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11987 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
1ddf475b6a3d748427546ab8f65a712c8eea3a0f 29-Feb-2004 Chris Lattner <sabre@nondot.org> These two virtual methods are never called.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11984 91177308-0d34-0410-b5e6-96231b3b80d8
parcInstrInfo.cpp
parcInstrInfo.h
e1274de2c9ce7d208cd989b3f749724f38c54caf 29-Feb-2004 Chris Lattner <sabre@nondot.org> Implement initial prolog/epilog code insertion methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11979 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcRegisterInfo.td
1c809c594b8339fff4746c08e34914fffc3242e4 29-Feb-2004 Chris Lattner <sabre@nondot.org> Add an instruction selector capable of selecting 'ret void'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11973 91177308-0d34-0410-b5e6-96231b3b80d8
nstSelectSimple.cpp
parc.h
parcRegisterInfo.td
parcTargetMachine.cpp
parcV8ISelSimple.cpp
9ff6ba1ea1692a3bbef8ffd6ad6a4a724d4b9667 28-Feb-2004 Chris Lattner <sabre@nondot.org> Change this so that LLC actually tries to run the code generator, though it will
immediately abort due to lack of an instruction selector. :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11963 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
8d8a6bc7a36ccf517354c325aa5ca9a127776d0f 28-Feb-2004 Chris Lattner <sabre@nondot.org> Finegrainify namespacification


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11958 91177308-0d34-0410-b5e6-96231b3b80d8
parcTargetMachine.cpp
a85d46eea8f7eba8be2e9724c099abda68dbb20a 28-Feb-2004 Chris Lattner <sabre@nondot.org> Tab completion is our friend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11957 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcInstrInfo.td
parcRegisterInfo.td
parcV8InstrInfo_F2.td
parcV8InstrInfo_F3.td
parcV8Instrs.td
parcV8Instrs_F2.td
parcV8Instrs_F3.td
parcV8Reg.td
83ba99ac46a2e4189d71146246abca8c845ffd68 28-Feb-2004 Chris Lattner <sabre@nondot.org> Clean up rules


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11956 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
275f6459ab5fca1a0b56920291d9cba4aae5d3b5 28-Feb-2004 Chris Lattner <sabre@nondot.org> Bring this directory into "it actually compiles" land


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11955 91177308-0d34-0410-b5e6-96231b3b80d8
parcRegisterInfo.cpp
parcV8Instrs.td
parcV8Instrs_F2.td
parcV8Instrs_F3.td
f13bd49d6af464306330e2c1147cc197c9eb0da2 28-Feb-2004 Chris Lattner <sabre@nondot.org> Fix multiple inclusion problem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11954 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8Instrs.td
23e6c1ff454a5d3d148ca3816562d7da49ac9c85 26-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> Instructions to call and return from functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11858 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8Instrs.td
757df0282652a9623891baf00d83e03964bb38b1 25-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> SparcV8 regs are really 32-bit, not 64! Thanks, Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11835 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8Reg.td
e07c2aa67cad10d6793c649639fece58dcea6d20 25-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> Clean up the tablegen descriptions for SparcV8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11834 91177308-0d34-0410-b5e6-96231b3b80d8
parc.td
parcV8Instrs.td
5914bf6ef594ed14b1473e63afdf5fd1c6e0a6a7 25-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> Fix the SparcV8 register definitions that were imported from PPC template.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11833 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8Reg.td
3dff82298818d2760c0b53b45214bff5dea9fb4a 25-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> SparcV8 has different types of instructions, but F1 is only used for CALL.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11832 91177308-0d34-0410-b5e6-96231b3b80d8
parcV8Instrs_F2.td
parcV8Instrs_F3.td
e785e531f4495068ee46cabd926939eec15a565a 25-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> SparcV8 skeleton


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11828 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
EADME.txt
parc.h
parc.td
parcInstrInfo.cpp
parcInstrInfo.h
parcRegisterInfo.cpp
parcRegisterInfo.h
parcTargetMachine.cpp
parcTargetMachine.h
parcV8CodeEmitter.cpp
parcV8Instrs.td
parcV8JITInfo.h
parcV8Reg.td