Devang Patel
f3292b2196
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+)
llvm-svn: 126155
2011-02-21 23:21:26 +00:00
Venkatraman Govindaraju
a82203f875
Generate correct Sparc32 ABI compliant code for functions that return a struct.
...
llvm-svn: 126108
2011-02-21 03:42:44 +00:00
Oscar Fuentes
ba1186c23e
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.
llvm-svn: 126068
2011-02-20 02:55:27 +00:00
Stuart Hastings
81c4306005
Swap VT and DebugLoc operands of getExtLoad() for consistency with
...
other getNode() methods. Radar 9002173.
llvm-svn: 125665
2011-02-16 16:23:55 +00:00
Venkatraman Govindaraju
0c1f65317b
Prevent IMPLICIT_DEF/KILL to become a delay filler instruction in SPARC backend.
...
llvm-svn: 125444
2011-02-12 19:02:33 +00:00
Devang Patel
56cc5fdf09
Keep track of incoming argument's location while emitting LiveIns.
...
llvm-svn: 124611
2011-01-31 21:38:14 +00:00
Venkatraman Govindaraju
cc91b7a3f6
Pass sret arguments through the stack instead of through registers in Sparc backend. It makes the code generated more compliant with the sparc32 ABI.
...
llvm-svn: 124030
2011-01-22 13:05:16 +00:00
Venkatraman Govindaraju
7a0c350079
Added ICC, FCC as uses of movcc instruction to generate correct code when -mattr=v9 is used.
...
llvm-svn: 124027
2011-01-22 11:36:24 +00:00
Venkatraman Govindaraju
ef8cf45eb1
Sparc backend:
...
Rename FLUSH to FLUSHW.
Output "ta 3" instead of a "flushw" instruction if v8 instruction set is used.
llvm-svn: 123997
2011-01-21 22:00:00 +00:00
Venkatraman Govindaraju
0594789f07
Implement support for byval arguments in Sparc backend.
...
llvm-svn: 123974
2011-01-21 14:00:01 +00:00
Venkatraman Govindaraju
058e12476c
Sparc backend: Implements a delay slot filler that attempt to fill delay slots
...
with useful instructions.
llvm-svn: 123884
2011-01-20 05:08:26 +00:00
Venkatraman Govindaraju
c386f8a1f6
SPARC backend: Modified LowerCall and LowerFormalArguments so that they use CallingConv assignments.
...
llvm-svn: 123749
2011-01-18 06:09:55 +00:00
Venkatraman Govindaraju
1b0e2cbf3f
Implement AnalyzeBranch in Sparc Backend.
...
llvm-svn: 123561
2011-01-16 03:15:11 +00:00
Jakob Stoklund Olesen
4bc5e38960
Teach frame lowering to ignore debug values after the terminators.
...
llvm-svn: 123399
2011-01-13 21:28:52 +00:00
Venkatraman Govindaraju
d964580fea
Implement RETURNADDR and FRAMEADDR lowering in SPARC backend.
...
llvm-svn: 123310
2011-01-12 05:08:36 +00:00
Venkatraman Govindaraju
ee347f8091
Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to
...
ensure %o7 is not assigned as the destination of getpcx instruction.
llvm-svn: 123304
2011-01-12 03:52:59 +00:00
Venkatraman Govindaraju
3b71b0ae3d
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.
llvm-svn: 123301
2011-01-12 03:18:21 +00:00
Venkatraman Govindaraju
4d6ade0e31
SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC
...
llvm-svn: 123281
2011-01-11 22:38:28 +00:00
Anton Korobeynikov
441ae5b88c
Update CMake stuff
...
llvm-svn: 123171
2011-01-10 12:39:23 +00:00
Anton Korobeynikov
2f93128109
Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.
...
llvm-svn: 123170
2011-01-10 12:39:04 +00:00
Venkatraman Govindaraju
0a09160e51
SPARC backend fix: correctly passing arguments through stack
...
llvm-svn: 122626
2010-12-29 05:37:15 +00:00
Venkatraman Govindaraju
2f15503d5a
Multiple SPARC backend fixes: added Y register; updated select_cc, subx, subxcc defs/uses;
...
and fixed CustomInserter.
llvm-svn: 122607
2010-12-28 20:39:17 +00:00
Chris Lattner
2a0a3b43d7
Flag -> Glue, the ongoing saga
...
llvm-svn: 122513
2010-12-23 18:28:41 +00:00
Chris Lattner
3e5fbd74ed
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.
llvm-svn: 122310
2010-12-21 02:38:05 +00:00
Wesley Peck
527da1b6e2
Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.
...
llvm-svn: 119990
2010-11-23 03:31:01 +00:00
Anton Korobeynikov
0eecf5d201
Move hasFP() and few related hooks to TargetFrameInfo.
...
llvm-svn: 119740
2010-11-18 21:19:35 +00:00
Anton Korobeynikov
51d2e9ca29
Attempt to unbreak cmake-based builds
...
llvm-svn: 119098
2010-11-15 00:48:12 +00:00
Anton Korobeynikov
f7183edb59
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
...
llvm-svn: 119097
2010-11-15 00:06:54 +00:00
Chris Lattner
66031ed839
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.
llvm-svn: 119056
2010-11-14 18:43:56 +00:00
Duncan Sands
f5dda01f33
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.
llvm-svn: 118167
2010-11-03 11:35:31 +00:00
Oscar Fuentes
b4b12535e8
Removed a bunch of unnecessary target_link_libraries.
...
llvm-svn: 114999
2010-09-28 22:39:14 +00:00
Chris Lattner
0e023ea02a
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.
llvm-svn: 114471
2010-09-21 20:31:19 +00:00
Chris Lattner
676c61db0e
update a bunch of code to use the MachinePointerInfo version of getStore.
...
llvm-svn: 114461
2010-09-21 18:41:36 +00:00
Chris Lattner
3d178ed4d4
propagate MachinePointerInfo through various uses of the old
...
SelectionDAG::getExtLoad overload, and eliminate it.
llvm-svn: 114446
2010-09-21 17:04:51 +00:00
Chris Lattner
7727d05dbb
convert the targets off the non-MachinePointerInfo of getLoad.
...
llvm-svn: 114410
2010-09-21 06:44:06 +00:00
Jim Grosbach
6a77066913
Simplify eliminateFrameIndex() interface back down now that PEI doesn't need
...
to try to re-use scavenged frame index reference registers. rdar://8277890
llvm-svn: 112241
2010-08-26 23:32:16 +00:00
Jakob Stoklund Olesen
f02b4a686a
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.
llvm-svn: 111263
2010-08-17 18:17:12 +00:00
Chris Lattner
72a364c107
fix emacs language spec's, patch by Edmund Grimley-Evans!
...
llvm-svn: 111241
2010-08-17 16:20:04 +00:00
Owen Anderson
a7aed18624
Reapply r110396, with fixes to appease the Linux buildbot gods.
...
llvm-svn: 110460
2010-08-06 18:33:48 +00:00
Owen Anderson
bda59bd247
Revert r110396 to fix buildbots.
...
llvm-svn: 110410
2010-08-06 00:23:35 +00:00
Owen Anderson
755aceb5d0
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.
llvm-svn: 110396
2010-08-05 23:42:04 +00:00
Jakob Stoklund Olesen
8289f78569
Remove the isMoveInstr() hook.
...
llvm-svn: 108567
2010-07-16 22:35:46 +00:00
Benjamin Kramer
92d8998348
Don't pass StringRef by reference.
...
llvm-svn: 108366
2010-07-14 22:38:02 +00:00
Jakob Stoklund Olesen
0961c55161
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.
llvm-svn: 108099
2010-07-11 19:19:13 +00:00
Jakob Stoklund Olesen
976b7b61fc
Replace copyRegToReg with copyPhysReg for Sparc.
...
llvm-svn: 108086
2010-07-11 07:56:09 +00:00
Evan Cheng
1c349f18f8
Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake.
...
llvm-svn: 107820
2010-07-07 22:15:37 +00:00
Dan Gohman
fe7532a308
Split the SDValue out of OutputArg so that SelectionDAG-independent
...
code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786
2010-07-07 15:54:55 +00:00
Devang Patel
a3ca21b228
Propagate debug loc.
...
llvm-svn: 107710
2010-07-06 22:08:15 +00:00
Dan Gohman
3439629239
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.
llvm-svn: 107691
2010-07-06 20:24:04 +00:00
Dan Gohman
f4f04107ef
Revert r107655.
...
llvm-svn: 107668
2010-07-06 15:49:48 +00:00