1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
Commit Graph

75740 Commits

Author SHA1 Message Date
NAKAMURA Takumi
c7c5395326 unittests/Support/DataExtractorTest.cpp: Specify ULL explicitly to a few constants.
It seems i686-cygwin-gcc-4.3 does not accept 64-bit constant without LL.

llvm-svn: 139664
2011-09-13 23:23:49 +00:00
Jakob Stoklund Olesen
e585e8ee86 Distinguish complex mapped values from forced recomputation.
When a ParentVNI maps to multiple defs in a new interval, its live range
may still be derived directly from RegAssign by transferValues().

On the other hand, when instructions have been rematerialized or
hoisted, it may be necessary to completely recompute live ranges using
LiveRangeCalc::extend() to all uses.

Use a bit in the value map to indicate that a live range must be
recomputed.  Rename markComplexMapped() to forceRecompute().

This fixes some live range verification errors when
-split-spill-mode=size hoists back-copies by recomputing source ranges
when RegAssign kills can't be moved.

llvm-svn: 139660
2011-09-13 23:09:04 +00:00
Devang Patel
d8a51ce4a9 Update tests. Remove irrelevant tests.
llvm-svn: 139658
2011-09-13 23:07:41 +00:00
Jim Grosbach
b2ddf62001 Remove unnecessary scope resolution operator.
llvm-svn: 139656
2011-09-13 22:56:44 +00:00
Akira Hatanaka
3d26b79a9a Delete test cases that generate code for allegrex/psp and cannot be repurposed.
llvm-svn: 139652
2011-09-13 22:29:13 +00:00
Jakob Stoklund Olesen
32fad58636 Implement -split-spill-mode=size.
Whenever the complement interval is defined by multiple copies of the
same value, hoist those back-copies to the nearest common dominator.

This ensures that at most one copy is inserted per value in the
complement inteval, and no phi-defs are needed.

llvm-svn: 139651
2011-09-13 22:22:39 +00:00
Eli Friedman
35cb1f9078 Fix check for unaligned load/store so it doesn't catch over-aligned load/store.
llvm-svn: 139649
2011-09-13 22:19:59 +00:00
Benjamin Kramer
c592744658 Style & indentation tweaks.
llvm-svn: 139646
2011-09-13 21:47:32 +00:00
Owen Anderson
1037a3e60b Make use of Eli's FileCheck sorcery to improve this test.
llvm-svn: 139645
2011-09-13 21:37:50 +00:00
Devang Patel
466c23b78a Add a check to make sure schedulePass() has not deleted stale RequiredPass.
llvm-svn: 139642
2011-09-13 21:13:29 +00:00
Eli Friedman
f13b5ef0e1 Error out on CodeGen of unaligned load/store. Fix test so it isn't accidentally testing that case.
llvm-svn: 139641
2011-09-13 20:50:54 +00:00
Owen Anderson
d0121fe635 Correct disassembly printing of Thumb2 post-incremented LDRD and STRD.
llvm-svn: 139639
2011-09-13 20:46:26 +00:00
Jim Grosbach
90b78a6f1f There's only 16 regs legal in a register list.
llvm-svn: 139637
2011-09-13 20:35:57 +00:00
Jim Grosbach
74f96e7f3c Tidy up a few 80 column violations.
llvm-svn: 139636
2011-09-13 20:30:37 +00:00
Jim Grosbach
a04c99bca5 Tidy up a bit.
llvm-svn: 139635
2011-09-13 20:27:44 +00:00
Akira Hatanaka
44c745931f Add pattern used to match MipsLo, which is needed when the instruction selector
tries to match a dead MipsLo node (explanation in the link below).

http://article.gmane.org/gmane.comp.compilers.llvm.devel/42757/match=dagcombiner+dead

llvm-svn: 139634
2011-09-13 20:13:58 +00:00
Nadav Rotem
ee1d1cfdd5 Fix the assertion which checks the size of the input operand.
llvm-svn: 139633
2011-09-13 20:03:38 +00:00
Akira Hatanaka
1376e1eabf Disable tests which generate code for allegrex or psp.
llvm-svn: 139632
2011-09-13 20:00:35 +00:00
Nadav Rotem
5ea703debf update checked pattern
llvm-svn: 139631
2011-09-13 19:59:18 +00:00
Nadav Rotem
f1730712f7 swap vselect operand order - pr10907
llvm-svn: 139630
2011-09-13 19:56:38 +00:00
Benjamin Kramer
eb3c03dfb7 Remove include of header that doesn't exist (yet).
llvm-svn: 139629
2011-09-13 19:55:32 +00:00
Benjamin Kramer
fdfaae6a8f I know copy&paste!
llvm-svn: 139628
2011-09-13 19:49:53 +00:00
Benjamin Kramer
c4e7a56915 Sketch out a DWARF parser.
This introduces a new library to LLVM: libDebugInfo. It will provide debug information
parsing to LLVM. Much of the design and some of the code is taken from the LLDB project.

It also contains an llvm-dwarfdump tool that can dump the abbrevs and DIEs from an
object file. It can be used to write tests for DWARF input and output easily.

llvm-svn: 139627
2011-09-13 19:42:23 +00:00
Benjamin Kramer
fcc23eeec7 Add the DataExtractor utility class.
It is an endian-aware helper that can read data from a StringRef. It will
come in handy for DWARF parsing. This class is inspired by LLDB's
DataExtractor, but is stripped down to the bare minimum needed for DWARF.

Comes with unit tests!

llvm-svn: 139626
2011-09-13 19:42:16 +00:00
Bruno Cardoso Lopes
f02589db47 Add versions 256-bit versions of alignedstore and alignedload, to be
more strict about the alignment checking. This was found by inspection
and I don't have any testcases so far, although the llvm testsuite runs
without any problem.

llvm-svn: 139625
2011-09-13 19:33:03 +00:00
Bruno Cardoso Lopes
6f299a4937 Revert the remaining part of r139528. According to PR10907 the bug seems
to be in the VSELECT operands order, so I'll leave the fix for Nadav.

llvm-svn: 139624
2011-09-13 19:33:00 +00:00
Nadav Rotem
60df99b809 Add vselect target support for targets that do not support blend but do support
xor/and/or (For example SSE2).

llvm-svn: 139623
2011-09-13 19:17:42 +00:00
Akira Hatanaka
052c83e7a2 Support for PSP is gone too.
llvm-svn: 139622
2011-09-13 18:55:33 +00:00
Argyrios Kyrtzidis
d0acbd50a7 [tablegen] In ClangAttrEmitter.cpp handle SourceLocation arguments to attributes.
llvm-svn: 139617
2011-09-13 18:41:43 +00:00
Devang Patel
2968c19b82 Use a cache to maintain list of machine basic blocks for a given UserValue.
llvm-svn: 139616
2011-09-13 18:40:53 +00:00
Jakob Stoklund Olesen
d9e926da26 Add SplitEditor::markOverlappedComplement().
This function is used to flag values where the complement interval may
overlap other intervals.  Call it from overlapIntv, and use the flag to
fully recompute those live ranges in transferValues().

llvm-svn: 139612
2011-09-13 18:05:29 +00:00
Owen Anderson
b4ed08c465 Teach the Thumb ASM parser that BKPT is allowed in IT blocks, even though it is always executed unconditionally.
llvm-svn: 139610
2011-09-13 17:59:19 +00:00
Jakob Stoklund Olesen
bcb7c275ee Eliminate the extendRange() wrapper.
llvm-svn: 139608
2011-09-13 17:38:57 +00:00
Akira Hatanaka
4cdd5fca36 It is not necessary to search for mipsallegrex in target triple string.
llvm-svn: 139607
2011-09-13 17:35:28 +00:00
Owen Anderson
5982d4d51b Fix encoding of Thumb2 shifted register operands with RRX shifts.
llvm-svn: 139606
2011-09-13 17:34:32 +00:00
Jakob Stoklund Olesen
8e739db8a2 Switch extendInBlock() to take a kill slot instead of the last use slot.
Three out of four clients prefer this interface which is consistent with
extendIntervalEndTo() and LiveRangeCalc::extend().

llvm-svn: 139604
2011-09-13 16:47:56 +00:00
Jakob Stoklund Olesen
c0aa77ec15 Use a separate LiveRangeCalc for the complement in spill modes.
The complement interval may overlap the other intervals created, so use
a separate LiveRangeCalc instance to compute its live range.

A LiveRangeCalc instance can only be shared among non-overlapping
intervals.

llvm-svn: 139603
2011-09-13 16:47:53 +00:00
Devang Patel
ac7dbe4022 Maintain hexadecimal order.
llvm-svn: 139601
2011-09-13 16:39:59 +00:00
Argyrios Kyrtzidis
56cc934d76 In ClangAttrEmitter.cpp emit code that allows attributes to keep their source range.
llvm-svn: 139598
2011-09-13 16:05:43 +00:00
Craig Topper
0f36afb30c Only disassembler instructions with vvvv != 1111 if the instruction actually uses the vvvv field to encode an operand. Fixes PR10851.
llvm-svn: 139591
2011-09-13 07:37:44 +00:00
Craig Topper
03c833ff84 Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848.
llvm-svn: 139588
2011-09-13 06:54:58 +00:00
Craig Topper
6eeb5396f8 Fix encoding of VMOVDQU to not simultaneously be 'TB OpSize' and 'XS'. 'XS' is correct and seems to have been taking priority.
llvm-svn: 139587
2011-09-13 06:39:34 +00:00
Andrew Trick
2e22ddc364 [indvars] Revert r139579 until 401.bzip -arch i386 miscompilation is fixed. PR10920.
llvm-svn: 139583
2011-09-13 05:23:49 +00:00
NAKAMURA Takumi
545ef2a09a Unbreak msvc.
llvm-svn: 139581
2011-09-13 03:58:34 +00:00
Andrew Trick
2bfa2824c6 Disable IV rewriting by default. See PR10916.
llvm-svn: 139579
2011-09-13 03:23:21 +00:00
Andrew Trick
3faad5fc36 Generalize test case to handle multiple indvars modes.
llvm-svn: 139578
2011-09-13 03:17:25 +00:00
Andrew Trick
a534a558a2 Generalize this test's CHECK statements to handle different indvars modes.
llvm-svn: 139577
2011-09-13 02:46:27 +00:00
Andrew Trick
fe292d43c0 This test only makes sense with -enable-iv-rewrite.
llvm-svn: 139576
2011-09-13 02:45:26 +00:00
Eli Friedman
c6ff621dc5 Zap some junk from the ARM instruction descriptions.
llvm-svn: 139575
2011-09-13 02:29:58 +00:00
Andrew Trick
2cc8637af2 [indvars] Fix bugs in floating point IV range checks noticed by inspection.
llvm-svn: 139574
2011-09-13 01:59:32 +00:00