Devang Patel
0d885d1661
Mark function used by asm block as used, otherwise optimizer may not see the use and may delete the function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53692 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 17:54:34 +00:00
Scott Michel
5af8f0e67e
Somehow, custom lowering of i64 multiplications got dropped along the way.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53689 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 17:17:29 +00:00
Dan Gohman
2fbdf0e711
Fix the result type of X86's truncate to i8.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53688 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 16:20:48 +00:00
Evan Cheng
817a6a9eaa
x86-64 PIC JIT fixes: do not generate the extra load for external GV's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53661 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 01:34:02 +00:00
Evan Cheng
81fb5feede
X86-64 PIC jump table values are different from x86-32 cases, they are dest - table base.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53660 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 01:33:08 +00:00
Dan Gohman
9c578eb223
TargetAsmInfo::SectionForGlobal showed up in a profile. Simplify it a little.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53639 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15 18:37:51 +00:00
Bruno Cardoso Lopes
b27cb55923
Fixed call stack alignment. Improved AsmPrinter alignment issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53585 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15 02:03:36 +00:00
Bruno Cardoso Lopes
43d526d162
Added Subtarget support into RegisterInfo
...
Added HasABICall and HasAbsoluteCall (equivalent to gcc -mabicall and
-mno-shared). HasAbsoluteCall is not implemented but HasABICall is the
default for o32 ABI. Now, both should help into a more accurate
relocation types implementation.
Added IsLinux is needed to choose between asm directives.
Instruction name strings cleanup.
AsmPrinter improved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53551 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 14:42:54 +00:00
Chris Lattner
10c5d36ca9
Add a note.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53535 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 00:19:59 +00:00
Evan Cheng
5330192ab5
Implement llvm.atomic.cmp.swap.i32 on PPC. Patch by Gary Benson!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53505 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-12 02:23:19 +00:00
Dan Gohman
cddc11e757
Add a utility function to MachineInstr for testing whether an instruction
...
has exactly one MachineMemOperand, and change some X86 lowering code to
make use of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53498 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-12 00:10:52 +00:00
Dan Gohman
a54cf17661
Include a frame index in the "fixed stack" pseudo source value
...
instead of using the frame index for the SVOffset, which was
inconsistent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53486 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 22:44:52 +00:00
Chris Lattner
78d60458d5
add support for returning i128, PR2532.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53472 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 20:53:00 +00:00
Dan Gohman
dc2fbddd9d
Trim unnecessary #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53471 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 20:38:31 +00:00
Bill Wendling
71ca353ae6
The frame address on an x86-64 box needs to be offset by -8, not -4.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53450 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 07:18:52 +00:00
Chris Lattner
6291d69c4c
Remove extraneous vertical whitespace before Eric gets the wrong idea ;-)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53411 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 16:49:53 +00:00
Chris Lattner
85e7ac0353
Fix an altivec constant miscompilation that Duncan found through
...
his work on legalizetypes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53410 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 16:33:38 +00:00
Owen Anderson
c007848b5a
Fix the build by adding a #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53388 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 01:44:27 +00:00
Evan Cheng
331e2bd942
Fix for PR2472. Use movss to set lower 32-bits of a zero XMM vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53386 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 01:08:23 +00:00
Anton Korobeynikov
7705ea33e4
Remove a FIXME: we really need to use const_data section on darwin for
...
constant pool, if relocation model is not static. This directly maps to
the way how GCC works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53370 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:54:26 +00:00
Anton Korobeynikov
ac2673e4ea
Add FIXME for future checking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53368 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:38:28 +00:00
Dale Johannesen
03b5ee7762
Remove extra call to DW.SetModuleInfo on Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53365 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:33:15 +00:00
Dale Johannesen
d03772466a
Emit debug info for data-only files on Cell SPU.
...
I cannot test this target, let me know if it breaks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53363 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:25:06 +00:00
Dale Johannesen
757809a170
Emit debug into for data-only files for Linux PPC.
...
I cannot test this target, let me know if it breaks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53362 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:24:07 +00:00
Dale Johannesen
f2452c5f48
Emit debug info for data-only files. ARM version.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53360 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 21:20:54 +00:00
Dale Johannesen
7bc39e227f
Emit debug info for data-only files. This version
...
is X86 ATT only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53355 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 20:55:35 +00:00
Anton Korobeynikov
b126f3b534
Add missed section
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53354 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 20:47:55 +00:00
Dale Johannesen
94618eb888
Emit debug info for data-only files. This version
...
applies to ppc Darwin only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53353 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 20:43:39 +00:00
Anton Korobeynikov
9a06ed9359
Distinguish .const and .const_data on Darwin, when needed. This is somehow crazy :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 20:01:42 +00:00
Anton Korobeynikov
f56c2f7a4b
Weak stuff always goes to coalesced sections on Darwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 19:06:02 +00:00
Dan Gohman
4b9235b149
Remove #include <iostream>.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53333 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 18:08:48 +00:00
Anton Korobeynikov
c5a7e40c74
Add FIXME needed to be resolved later
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53324 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:30:02 +00:00
Anton Korobeynikov
7d51edfc08
Use only 'subset' of flags
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53323 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:29:44 +00:00
Anton Korobeynikov
a3af0bf4ab
Typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53322 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:29:27 +00:00
Anton Korobeynikov
3b48591a84
Revert accidentially added stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53321 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:29:08 +00:00
Anton Korobeynikov
0d44ba82b4
First sketch of special section objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53320 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:28:49 +00:00
Anton Korobeynikov
c5c92f6383
Honour text sections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53319 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:28:19 +00:00
Anton Korobeynikov
c33a744f0e
Use isWeakForLinker() hook
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53318 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:27:59 +00:00
Anton Korobeynikov
e87f52d722
Switch to new section name handling facility
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53316 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:27:16 +00:00
Anton Korobeynikov
7e7fc82cf3
Another bunch of hacks for named sections support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53315 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:26:52 +00:00
Anton Korobeynikov
1290ecf5b9
Typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53314 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:26:24 +00:00
Anton Korobeynikov
87fc6b4f86
Drop mergeable flag, if size is no suitable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53313 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:26:05 +00:00
Anton Korobeynikov
2a889172a4
Fix several bugs in named sections handling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53312 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:25:46 +00:00
Anton Korobeynikov
b20015b621
Add hacky way to distinguish named and named sections. This will be generalized in the future.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53311 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:25:26 +00:00
Anton Korobeynikov
5248670096
Use 'gnu.linkonce', where needed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53310 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:24:55 +00:00
Anton Korobeynikov
0e48a0ca16
Fix thinko
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53309 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:24:38 +00:00
Anton Korobeynikov
c6f4947d48
Drop dead member reference
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53308 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:24:18 +00:00
Anton Korobeynikov
4039e680bc
Add funny darwin section selection logic
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53307 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:23:57 +00:00
Anton Korobeynikov
01b0e24c25
Handle ELF mergeable sections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53306 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:23:37 +00:00
Anton Korobeynikov
4260ad3e7d
Provide section selection for X86 ELF targets
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53305 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:23:08 +00:00
Anton Korobeynikov
265c5259ab
Provide general hook for section name calculation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53304 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:22:46 +00:00
Anton Korobeynikov
6d82942092
Print entity size for mergeable sections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:22:17 +00:00
Anton Korobeynikov
f447e3d311
Split PrintSectionFlags
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53302 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:21:49 +00:00
Anton Korobeynikov
b9a02fcaf6
Split UniqueSectionForGlobal()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53301 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:21:29 +00:00
Anton Korobeynikov
b9e58efdb9
Split PreferredEHDataFormat hook
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53300 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:21:08 +00:00
Anton Korobeynikov
4468b7a988
Split X86TargetAsmInfo into 4 subtarget-specific classes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53299 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:20:48 +00:00
Anton Korobeynikov
8210045b9f
Whitespace cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53298 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:20:27 +00:00
Anton Korobeynikov
6e405f3f77
Move flag decoding stuff into special hook
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53297 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:20:07 +00:00
Anton Korobeynikov
29b03f7375
Properly handle linkonce stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53296 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:19:38 +00:00
Anton Korobeynikov
c0f41db19c
Provide skeletone code for calculation of section, where global should be emitted into
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53295 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:19:08 +00:00
Anton Korobeynikov
a2d330717b
Use 'llvm-linkonce' consistently
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53294 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:18:38 +00:00
Anton Korobeynikov
0c602469f4
Add default section name resolution routine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53292 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:18:02 +00:00
Anton Korobeynikov
8cc948d228
Constify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:17:36 +00:00
Anton Korobeynikov
beb9d40900
Add code for default section falgs computation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 13:16:59 +00:00
Evan Cheng
526be70f94
Back out 53254. It broke ppc debug info codegen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53280 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 06:36:53 +00:00
Bill Wendling
06b8c19957
Silence warning by initializing variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53278 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 05:55:53 +00:00
Bruno Cardoso Lopes
7728f7e890
Fixed features usage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 05:32:22 +00:00
Chris Lattner
b02b8af378
random bugfix sitting in my tree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53274 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 05:12:07 +00:00
Bruno Cardoso Lopes
7b76da145b
Fixe typos and 80 column size problems
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53272 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 04:45:36 +00:00
Bruno Cardoso Lopes
97c2537269
MipsTargetLowering cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09 04:15:08 +00:00
Dale Johannesen
f71cb9b3ed
Make debug info come out in data-only files.
...
This is a question of the debugging setup code not
being called at the right time, and it's called from
target-dependent code for some reason. I have only
attempted to fix Darwin, but I'm pretty sure it's
broken elsewhere; I'll leave that to people who can
test it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53254 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 21:56:22 +00:00
Evan Cheng
ab8faba2fb
Unbreak C++ tests on x86 Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53237 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 16:40:43 +00:00
Duncan Sands
1512642973
Pacify gcc-4.3.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53227 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 09:33:14 +00:00
Evan Cheng
77c8f7674d
Avoid unnecessary string construction during asm printing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53215 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 00:55:58 +00:00
Dan Gohman
8e5f2c6f65
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
2008-07-07 23:14:23 +00:00
Evan Cheng
19d6d424aa
Clean up PPC register specification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53209 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 22:22:07 +00:00
Evan Cheng
ae270f66aa
ATT asm printer just print register AsmName's instead of calling tolower on each charater of Name. This speeds it up by 10%.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53208 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 22:21:06 +00:00
Evan Cheng
b7c3e867a5
TargetRegisterDesc::Name field is the same as the abstract register name. There is no need for targets to specify register names in addition to their AsmName's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53207 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 22:19:41 +00:00
Dan Gohman
2d97918ce9
Simplify this use of BuildMI. This is also in preparation for
...
pool-allocating MachineInstrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53198 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 20:09:12 +00:00
Dan Gohman
4542611bb9
Minor const-correctness fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53196 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 20:06:06 +00:00
Bruno Cardoso Lopes
85e9212fcd
fixed 32-bit fp_to_sint pattern
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53192 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 19:11:24 +00:00
Dan Gohman
1002c02034
Add explicit keywords.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 18:00:37 +00:00
Dan Gohman
6b345ee9b2
Make DenseMap's insert return a pair, to more closely resemble std::map.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 17:46:23 +00:00
Bruno Cardoso Lopes
225ca9cdd7
Several changes to Mips backend, experimental fp support being the most
...
important.
- Cleanup in the Subtarget info with addition of new features, not all support
yet, but they allow the future inclusion of features easier. Among new features,
we have : Arch family info (mips1, mips2, ...), ABI info (o32, eabi), 64-bit
integer
and float registers, allegrex vector FPU (VFPU), single float only support.
- TargetMachine now detects allegrex core.
- Added allegrex (Mips32r2) sext_inreg instructions.
- *Added Float Point Instructions*, handling single float only, and
aliased accesses for 32-bit FPUs.
- Some cleanup in FP instruction formats and FP register classes.
- Calling conventions improved to support mips 32-bit EABI.
- Added Asm Printer support for fp cond codes.
- Added support for sret copy to a return register.
- EABI support added into LowerCALL and FORMAL_ARGS.
- MipsFunctionInfo now keeps a virtual register per function to track the
sret on function entry until function ret.
- MipsInstrInfo FP support into methods (isMoveInstr, isLoadFromStackSlot, ...),
FP cond codes mapping and initial FP Branch Analysis.
- Two new Mips SDNode to handle fp branch and compare instructions : FPBrcond,
FPCmp
- MipsTargetLowering : handling different FP classes, Allegrex support, sret
return copy, no homing location within EABI, non 32-bit stack objects
arguments, and asm constraint for float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-05 19:05:21 +00:00
Duncan Sands
126d90770b
Rather than having a different custom legalization
...
hook for each way in which a result type can be
legalized (promotion, expansion, softening etc),
just use one: ReplaceNodeResults, which returns
a node with exactly the same result types as the
node passed to it, but presumably with a bunch of
custom code behind the scenes. No change if the
new LegalizeTypes infrastructure is not turned on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53137 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-04 11:47:58 +00:00
Duncan Sands
ececf99c07
Linux also does not require exception handling
...
moves in order to get correct debug info. Since
I can't imagine how any target could possibly
be any different, I've just stripped out the
option: now all the world's like Darwin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53134 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-04 09:55:48 +00:00
Evan Cheng
cb2627395d
Back out 53091 for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53109 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 18:11:29 +00:00
Evan Cheng
9f1c8317a4
- 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
2008-07-03 09:09:37 +00:00
Anton Korobeynikov
f550f472ee
llvm-gcc sometimes marks external declarations hidden, because intializers are
...
processed separately. Honour such situation and emit PIC relocations properly
in such case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53091 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:43:14 +00:00
Evan Cheng
457b88fb95
commuteInstruction should preserve dead markers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53060 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:04:51 +00:00
Owen Anderson
f660c171c8
Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction
...
Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53058 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 23:41:07 +00:00
Duncan Sands
4bdcb61af3
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
2008-07-02 17:40:58 +00:00
Bill Wendling
aa8f8889a8
Darwin doesn't need exception handling information for the "move" info when
...
debug information is being output, because it's leet!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52994 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 23:34:48 +00:00
Evan Cheng
6547e406cf
Avoid creating expensive comment string if it's not going to be printed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52992 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 23:18:29 +00:00
Bill Wendling
836ba9d7e7
Remove warning about initialization order.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52980 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 21:00:31 +00:00
Dan Gohman
2dad0250f6
Prune a few dependencies on MachineFunction.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52976 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 18:15:35 +00:00
Evan Cheng
4576f6d7a9
Do not use computationally expensive scheduling heuristics with -fast.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52971 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 18:05:03 +00:00
Owen Anderson
605041e5a8
Make the subregister hashtable output more readable by wrapping the lines,
...
and mark it const along with the associated changes to TargetRegisterInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52966 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 17:34:38 +00:00
Duncan Sands
d9ad8abc8e
Highlight that getMergeValues optimization is
...
being suppressed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52952 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 08:00:49 +00:00
Owen Anderson
f4f9c4f1cf
Replace the dynamically computed std::set lookup method for subregisters with a hashtable-based
...
version that is computed by tblgen at the time LLVM is compiled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01 00:18:52 +00:00