1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 16:33:37 +01:00
Commit Graph

76133 Commits

Author SHA1 Message Date
Jim Grosbach
1a4f264f52 ARM tighten up the register classes for the PKH instructions.
llvm-svn: 139748
2011-09-14 22:52:14 +00:00
Owen Anderson
86f1fb2955 Fix a crasher in Thumb2 MOV-immediate encoding for certain inputs.
llvm-svn: 139747
2011-09-14 22:46:14 +00:00
Bill Wendling
7694b6d655 Include limits.h to make sure PATH_MAX is known on Solaris 10.
Patch by Joakim Johansson!

llvm-svn: 139743
2011-09-14 21:49:42 +00:00
Jim Grosbach
3908f7f2b7 Thumb2 assembly parsing and encoding for ORR.
llvm-svn: 139742
2011-09-14 21:43:57 +00:00
Jim Grosbach
4d891badcb Thumb2 assembly parsing and encoding for ORN.
llvm-svn: 139741
2011-09-14 21:29:54 +00:00
Jim Grosbach
528142a13d Thumb2 assembly parsing and encoding for NOP.W.
llvm-svn: 139740
2011-09-14 21:26:25 +00:00
Jim Grosbach
e841adae12 Thumb2 assembly parsing and encoding for MVN.
llvm-svn: 139739
2011-09-14 21:24:41 +00:00
Owen Anderson
04d8803035 Nested IT blocks are UNPREDICTABLE. Mark them as such when disassembling them.
llvm-svn: 139736
2011-09-14 21:06:21 +00:00
Jim Grosbach
585e3c779f Thumb2 assembly parsing and encoding for MUL.
llvm-svn: 139735
2011-09-14 21:00:40 +00:00
Benjamin Kramer
00648a5c53 DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.
Ported from LLDB.

llvm-svn: 139732
2011-09-14 20:52:27 +00:00
Douglas Gregor
96b7e66374 Add a simple routine to determine the typical system directory for
temporary data. 

llvm-svn: 139725
2011-09-14 20:27:01 +00:00
Jim Grosbach
b1c70aab3e Thumb2 assembly parsing and encoding for MSR/MRS.
Fix a bug in handling default flags for both ARM and Thumb encodings.

llvm-svn: 139721
2011-09-14 20:03:46 +00:00
Jim Grosbach
e260140b99 Thumb2 assembly parsing and encoding for MRC/MRC2/MRRC/MRRC2.
llvm-svn: 139717
2011-09-14 19:28:49 +00:00
Jim Grosbach
807e68b8db Thumb2 assembly parsing and encoding for MOVT.
llvm-svn: 139715
2011-09-14 19:15:15 +00:00
Jim Grosbach
932d409524 Thumb2 assembly parsing for MOV in IT block.
Select the right 16 vs. 32 bit encoding in an IT block.

llvm-svn: 139714
2011-09-14 19:12:11 +00:00
Benjamin Kramer
3f753c2372 DWARF: Reorder fields to reduce padding.
llvm-svn: 139712
2011-09-14 18:34:47 +00:00
Dan Gohman
f4d52b917e Don't mark objc_retainBlock as nounwind. It calls user copy constructors
which could theoretically throw.

llvm-svn: 139710
2011-09-14 18:33:34 +00:00
Dan Gohman
223fdfc56f objc_retainBlock is not NoModRef because it can update forwarding pointers
in memory relevant to the optimizer. rdar://10050579.

llvm-svn: 139708
2011-09-14 18:13:00 +00:00
Jim Grosbach
41c8bdfdd9 ARM fix assembly parser handling of ranges in register lists.
Clean up register list handling in general a bit to explicitly check things
like all the registers being from the same register class.

rdar://8883573

llvm-svn: 139707
2011-09-14 18:08:35 +00:00
Benjamin Kramer
fd97743d22 DWARF: Improve indentation of DIE dumping so it's easier to see the structure.
llvm-svn: 139705
2011-09-14 17:54:56 +00:00
Jakob Stoklund Olesen
44b1ea8bae Ignore the cloning of unknown registers.
THe LRE_DidCloneVirtReg callback may be called with vitual registers
that RAGreedy doesn't even know about yet.  In that case, there are no
data structures to update.

llvm-svn: 139702
2011-09-14 17:34:37 +00:00
Benjamin Kramer
b08f6dc724 llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it doesn't accidentaly picks up the wrong section.
Also add some validation code to the aranges section parser.

Fixes PR10926.

llvm-svn: 139701
2011-09-14 17:28:13 +00:00
Akira Hatanaka
e74b377e20 Add comment.
llvm-svn: 139699
2011-09-14 17:22:51 +00:00
Jakob Stoklund Olesen
2f94c01c12 Hoist back-copies to the least busy dominator.
When a back-copy is hoisted to the nearest common dominator, keep
looking up the dominator tree for a less loopy dominator, and place the
back-copy there instead.

Don't do this when a single existing back-copy dominates all the others.
Assume the client knows what he is doing, and keep the dominating
back-copy.

This prevents us from hoisting back-copies into loops in most cases.  If
a value is defined in a loop with multiple exits, we may still hoist
back-copies into that loop.  That is the speed/size tradeoff.

llvm-svn: 139698
2011-09-14 16:45:39 +00:00
Jim Grosbach
36d319e831 Move state var to private class member.
llvm-svn: 139697
2011-09-14 16:37:04 +00:00
Douglas Gregor
8c0777c5f3 Add APInt support for converting to/from hexatridecimal strings
llvm-svn: 139695
2011-09-14 15:54:46 +00:00
Nadav Rotem
8e3edccebe Add integer promotion support for vselect
llvm-svn: 139692
2011-09-14 14:42:15 +00:00
Craig Topper
60719c7bfb Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler.
llvm-svn: 139691
2011-09-14 06:41:26 +00:00
Craig Topper
25e81ae604 Make disassembling of VBLEND* print immediate as a XMM/YMM register name. Fixes PR10917.
llvm-svn: 139690
2011-09-14 05:55:28 +00:00
Craig Topper
d707457c41 Add test case for PR10851.
llvm-svn: 139689
2011-09-14 04:36:54 +00:00
Bruno Cardoso Lopes
33c057e094 One more patch towards JIT support for Mips.
- Add TSFlags for the instruction formats. The idea here is to use
  as much encoding as possible from getBinaryCodeForInstr, and having
  TSFLags formats for that would make it easier to encode most part
  of the instructions (since Mips encodings are pretty straightforward)
- Improve the mips mechanism for compilation callback
- Add Mips specific code for invalidating the instruction cache
- Next patch will address wrong tablegen encoding

Commit msg added by my own but the patch is from Sasa Stankovic.

llvm-svn: 139688
2011-09-14 03:00:41 +00:00
Bruno Cardoso Lopes
27a7ace4b4 Teach the foldable tables about 128-bit AVX instructions and make the
alignment check for 256-bit classes more strict. There're no testcases
but we catch more folding cases for AVX while running single and multi
sources in the llvm testsuite.

Since some 128-bit AVX instructions have different number of operands
than their SSE counterparts, they are placed in different tables.

256-bit AVX instructions should also be added in the table soon. And
there a few more 128-bit versions to handled, which should come in
the following commits.

llvm-svn: 139687
2011-09-14 02:36:58 +00:00
Bruno Cardoso Lopes
3e6b9661d1 Vector shuffle mask <i32 4, i32 5, i32 2, i32 3> should yield "movsd", not "movss".
llvm-svn: 139686
2011-09-14 02:36:14 +00:00
Benjamin Kramer
a7b727b0bf Don't rely in <algorithm> being pulled in transitively.
llvm-svn: 139684
2011-09-14 01:27:48 +00:00
Benjamin Kramer
52607b3842 Object: make the following changes into SymbolRef
- Add enum SymbolType and function getSymbolType()
- Add function isGlobal() - it's returns true for symbols that can be used in another objects, such as library functions.
- Rename function getAddress() to getOffset() and add new function getAddress(), because currently getAddress() returns section offset of symbol first byte. new getAddress() return symbol address.
- Change usage SymbolRef::getAddress() to getOffset() in tools/llvm-nm and tools/llvm-objdump.

Patch by Danil Malyshev!

llvm-svn: 139683
2011-09-14 01:22:52 +00:00
Benjamin Kramer
2c621d55f6 Remove unimplemented function prototypes from PathV2. They can be readded when someone cares enough.
Patch by Aaron Ballman!

llvm-svn: 139682
2011-09-14 01:14:36 +00:00
Benjamin Kramer
6b456ffb42 DWARF: Port support for parsing .debug_aranges section from LLDB and wire it up to llvm-dwarfdump.
This is only one half of it, the part that caches address ranges from the DIEs when .debug_aranges is
not available will be ported soon.

llvm-svn: 139680
2011-09-14 01:09:52 +00:00
Benjamin Kramer
5b94d9657f ObjectFile: Add support for mach-o-style dSYM companion files.
llvm-svn: 139676
2011-09-14 00:39:22 +00:00
Devang Patel
75c70b2315 Remove ancient debug info constructs from test cases, they are not relevant to test case's main objective.
llvm-svn: 139675
2011-09-14 00:29:50 +00:00
Devang Patel
f9dcd6261d Remove unnecessary old test.
llvm-svn: 139674
2011-09-14 00:28:54 +00:00
Benjamin Kramer
62f1c110f1 DebugInfo: Don't print DIEs multiple times.
llvm-svn: 139671
2011-09-14 00:15:32 +00:00
Eric Christopher
25b7bedcf9 Fix indenting.
llvm-svn: 139670
2011-09-13 23:45:39 +00:00
Kevin Enderby
4a91571f82 First step in supporting #line directives in assembler. This step parses the
#line directives with the needed support in the lexer.  Next will be to build
a simple file/line# table mapping source SMLoc's for later use by diagnostics.
And the last step will be to get the diagnostics to use the mapping for file
and line numbers.

llvm-svn: 139669
2011-09-13 23:45:18 +00:00
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