Eric Christopher
de9d58569f
Add more comments... err debug statements to the fast allocator.
...
llvm-svn: 129400
2011-04-12 22:17:44 +00:00
Oscar Fuentes
80cd17c79f
Fix compiler command line used by lit.py when working with NMake
...
generators. It may improve robustness when testing from VS too.
Based on a patch by David Neto!
llvm-svn: 129398
2011-04-12 22:10:38 +00:00
Johnny Chen
960eef3db3
The Thumb2 RFE instructions need to have their second halfword fully specified.
...
In addition, the base register is not rGPR, but GPR with th exception that:
if n == 15 then UNPREDICTABLE
rdar://problem/9273836
llvm-svn: 129391
2011-04-12 21:41:51 +00:00
Jakob Stoklund Olesen
c49df2c05a
SparseBitVector is SLOW.
...
Use a Bitvector instead, we didn't need the smaller memory footprint anyway.
This makes the greedy register allocator 10% faster.
llvm-svn: 129390
2011-04-12 21:30:53 +00:00
Jim Grosbach
733d305fee
MCJIT lazy relocation resolution and symbol address re-assignment.
...
Add handling for tracking the relocations on symbols and resolving them.
Keep track of the relocations even after they are resolved so that if
the RuntimeDyld client moves the object, it can update the address and any
relocations to that object will be updated.
For our trival object file load/run test harness (llvm-rtdyld), this enables
relocations between functions located in the same object module. It should
be trivially extendable to load multiple objects with mutual references.
As a simple example, the following now works (running on x86_64 Darwin 10.6):
$ cat t.c
int bar() {
return 65;
}
int main() {
return bar();
}
$ clang t.c -fno-asynchronous-unwind-tables -o t.o -c
$ otool -vt t.o
t.o:
(__TEXT,__text) section
_bar:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 movl $0x00000041,%eax
0000000000000009 popq %rbp
000000000000000a ret
000000000000000b nopl 0x00(%rax,%rax)
_main:
0000000000000010 pushq %rbp
0000000000000011 movq %rsp,%rbp
0000000000000014 subq $0x10,%rsp
0000000000000018 movl $0x00000000,0xfc(%rbp)
000000000000001f callq 0x00000024
0000000000000024 addq $0x10,%rsp
0000000000000028 popq %rbp
0000000000000029 ret
$ llvm-rtdyld t.o -debug-only=dyld ; echo $?
Function sym: '_bar' @ 0
Function sym: '_main' @ 16
Extracting function: _bar from [0, 15]
allocated to 0x100153000
Extracting function: _main from [16, 41]
allocated to 0x100154000
Relocation at '_main' + 16 from '_bar(Word1: 0x2d000000)
Resolving relocation at '_main' + 16 (0x100154010) from '_bar (0x100153000)(pcrel, type: 2, Size: 4).
loaded '_main' at: 0x100154000
65
$
llvm-svn: 129388
2011-04-12 21:20:41 +00:00
Johnny Chen
01637b9acb
Add bad register checks for Thumb2 Ld/St instructions.
...
rdar://problem/9269047
llvm-svn: 129387
2011-04-12 21:17:51 +00:00
Andrew Trick
1b60ad6644
Revert 129383. It causes some targets to hit a scheduler assert.
...
llvm-svn: 129385
2011-04-12 20:14:07 +00:00
Nick Lewycky
2b473f8c85
Print our uint64_t with the more portable (C99 and C++0x) %PRIu64 format
...
specifier.
llvm-svn: 129384
2011-04-12 20:06:50 +00:00
Andrew Trick
c5dd24a542
PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency.
...
UnitsSharePred was a source of randomness in the scheduler: node
priority depended on the queue data structure. I rewrote the recent
VRegCycle heuristics to completely replace the old heuristic without
any randomness. To make these heuristic adjustments to node latency work,
I also needed to do something a little more reasonable with TokenFactor. I
gave it zero latency to its consumers and always schedule it as low as
possible.
llvm-svn: 129383
2011-04-12 19:54:36 +00:00
Oscar Fuentes
23fe31cc8d
Document how to build a LLVM pass with CMake out of source.
...
Patch by arrowdodger!
llvm-svn: 129381
2011-04-12 19:40:35 +00:00
Nick Lewycky
3c974a6bde
The counters are unsigned.
...
llvm-svn: 129380
2011-04-12 19:35:45 +00:00
Jakob Stoklund Olesen
c70b697a40
Create new intervals for isolated blocks during region splitting.
...
This merges the behavior of splitSingleBlocks into splitAroundRegion, so the
RS_Region and RS_Block register stages can be coalesced. That means the leftover
intervals after region splitting go directly to spilling instead of a second
pass of per-block splitting.
llvm-svn: 129379
2011-04-12 19:32:53 +00:00
Rafael Espindola
fd794affe5
Remove LastOffset from the asm parser.
...
llvm-svn: 129378
2011-04-12 18:53:30 +00:00
Johnny Chen
ab86a519f8
The Thumb2 Ld, St, and Preload instructions with the i12 forms should have its Inst{23}
...
be specified as '1' (add = TRUE).
Also add a utility function for Thumb2.
llvm-svn: 129377
2011-04-12 18:48:00 +00:00
Jakob Stoklund Olesen
0840f50b76
Add SplitKit API to query and select the current interval being worked on.
...
This makes it possible to target multiple registers in one pass.
llvm-svn: 129374
2011-04-12 18:11:31 +00:00
Jakob Stoklund Olesen
68e84581c5
Fix a bug in RegAllocBase::addMBBLiveIns() where a basic block could accidentally be skipped.
...
llvm-svn: 129373
2011-04-12 18:11:28 +00:00
Devang Patel
4547a9e658
Remove dead typedef.
...
llvm-svn: 129368
2011-04-12 17:43:12 +00:00
Devang Patel
5eb4319dba
Refactor CompileUnit into a separate header.
...
llvm-svn: 129367
2011-04-12 17:40:32 +00:00
Johnny Chen
d0e2be39ea
Print out a debug message when the reglist fails the sanity check for Thumb Ld/St Multiple.
...
llvm-svn: 129365
2011-04-12 17:09:04 +00:00
Rafael Espindola
1ec0f46169
Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.
...
llvm-svn: 129362
2011-04-12 16:12:03 +00:00
Rafael Espindola
2e1c9d2188
Implement .cfi_same_value.
...
llvm-svn: 129361
2011-04-12 15:31:05 +00:00
Garrison Venn
a0f6ecb01f
Added new FIXME note
...
llvm-svn: 129360
2011-04-12 12:30:10 +00:00
Cameron Zwarich
fbcd69b96a
Split a store of a VMOVDRR into two integer stores to avoid mixing NEON and ARM
...
stores of arguments in the same cache line. This fixes the second half of
<rdar://problem/8674845>.
llvm-svn: 129345
2011-04-12 02:24:17 +00:00
NAKAMURA Takumi
3f28443a07
lib/Transforms/Instrumentation/CMakeLists.txt: Add LineProfiling.cpp to fix up r129340.
...
llvm-svn: 129343
2011-04-12 01:54:40 +00:00
Nick Lewycky
9d60e373cf
Add support for line profiling. Very work-in-progress.
...
Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter.
Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file.
The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on.
llvm-svn: 129340
2011-04-12 01:06:09 +00:00
Nick Lewycky
fbc5a4004c
Consider ConstantAggregateZero as well as ConstantArray/Struct.
...
llvm-svn: 129338
2011-04-12 01:02:45 +00:00
Eric Christopher
c37833625a
Fix typo.
...
llvm-svn: 129334
2011-04-12 00:48:08 +00:00
Nick Lewycky
11168326f8
Make IRBuilder support StringRef for building strings.
...
Also document that the global variables produced are mergable.
llvm-svn: 129330
2011-04-12 00:29:07 +00:00
Jim Grosbach
3ed03f18d1
Tidy up a bit now that we're using the MemoryManager interface.
...
llvm-svn: 129328
2011-04-12 00:23:32 +00:00
Johnny Chen
f130b7f0f5
Add one test case (svc).
...
llvm-svn: 129327
2011-04-12 00:21:48 +00:00
Eric Christopher
ffc0e1f6e6
Match case for invalid constant error messages and add a new
...
test for invalid hexadecimals.
llvm-svn: 129326
2011-04-12 00:18:03 +00:00
Johnny Chen
672ef14a62
A8.6.16 B
...
Encoding T1 (tBcc)
if cond == '1110' then UNDEFINED;
rdar://problem/9268681
llvm-svn: 129325
2011-04-12 00:14:49 +00:00
Dan Gohman
1c6c34834b
Fix reassociate to use a worklist instead of recursing when new
...
reassociation opportunities are exposed. This fixes a bug where
the nested reassociation expects to be the IR to be consistent,
but it isn't, because the outer reassociation has disconnected
some of the operands. rdar://9167457
llvm-svn: 129324
2011-04-12 00:11:56 +00:00
Eric Christopher
0a68959604
Test for invalid constant expr addition - bad octal constant.
...
llvm-svn: 129323
2011-04-12 00:03:38 +00:00
Eric Christopher
104af0619e
To avoid printing out multiple error messages for cases like:
...
.long 80+08
go ahead and assume that if we've got an Error token that we handled it
already. Otherwise if it's a token we can't handle then go ahead and
return the default error.
llvm-svn: 129322
2011-04-12 00:03:13 +00:00
Jakob Stoklund Olesen
507992e909
Reuse live interval union between functions. This saves a bit of compile time
...
when compiling many small functions.
llvm-svn: 129321
2011-04-11 23:57:14 +00:00
Johnny Chen
dc8bf9ec08
Thumb disassembler was erroneously rejecting "blx sp" instruction.
...
rdar://problem/9267838
llvm-svn: 129320
2011-04-11 23:33:30 +00:00
Chris Lattner
7d4cdae564
comment cleanup, use moveBefore instead of removeFromParent+insertBefore.
...
llvm-svn: 129319
2011-04-11 23:24:57 +00:00
NAKAMURA Takumi
408c228367
TableGen: Keep the order of DECL_CONTEXT() for DeclNodes.td. RecordVector may be used instead of RecordSet.
...
The result of DeclNodes.inc was unstable on msys, Windows 7 x64.
llvm-svn: 129317
2011-04-11 23:20:28 +00:00
Chris Lattner
e81d045d94
remove the StructRetPromotion pass. It is unused, not maintained and
...
has some bugs. If this is interesting functionality, it should be
reimplemented in the argpromotion pass.
llvm-svn: 129314
2011-04-11 23:09:44 +00:00
Wesley Peck
f30a0e2d80
Fix an error in the MBlaze delay slot filler.
...
llvm-svn: 129313
2011-04-11 22:45:02 +00:00
Daniel Dunbar
0625b1f860
build: Add support for a SHOW_DIAGNOSTICS build variable.
...
If enabled, this will attempt to use the CC_LOG_DIAGNOSTICS feature I dropped
into Clang to print a log of all the diagnostics generated during an individual
build (from the top-level). Not sure if this will actually be useful, but for
now it is handy for testing the option.
llvm-svn: 129312
2011-04-11 22:37:39 +00:00
Wesley Peck
1914c39bd4
Add scheduling information for the MBlaze backend.
...
llvm-svn: 129311
2011-04-11 22:31:52 +00:00
Eric Christopher
64749f2a89
Lex, and then fail on invalid constants.
...
Testcase forthcoming.
rdar://8490596
llvm-svn: 129309
2011-04-11 22:24:56 +00:00
Nick Lewycky
0f85789800
Just because a GlobalVariable's initializer is [N x { i32, void ()* }] doesn't
...
mean that it has to be ConstantArray of ConstantStruct. We might have
ConstantAggregateZero, at either level, so don't crash on that.
Also, semi-deprecate the sentinal value. The linker isn't aware of sentinals so
we end up with the two lists appended, each with their "sentinals" on them.
Different parts of LLVM treated sentinals differently, so make them all just
ignore the single entry and continue on with the rest of the list.
llvm-svn: 129307
2011-04-11 22:11:20 +00:00
Rafael Espindola
82065cb6cf
Implement cfi_rel_offset
...
llvm-svn: 129306
2011-04-11 21:49:50 +00:00
Jakob Stoklund Olesen
0f175ebc32
Speed up eviction by stopping collectInterferingVRegs as soon as the spill
...
weight limit has been exceeded.
llvm-svn: 129305
2011-04-11 21:47:01 +00:00
Rafael Espindola
4f46abc15e
Add test for previous commit.
...
llvm-svn: 129304
2011-04-11 21:41:34 +00:00
Wesley Peck
e3685217d0
Don't crash on invalid instructions when disassembling MBlaze code.
...
This fixes http://llvm.org/bugs/show_bug.cgi?id=9653
llvm-svn: 129303
2011-04-11 21:35:21 +00:00
Bill Wendling
1e1f1c9ce1
The default of the dispatch switch statement was to branch to a BB that executed
...
the 'unwind' instruction. However, later on that instruction was converted into
a jump to the basic block it was located in, causing an infinite loop when we
get there.
It turns out, we get there if the _Unwind_Resume_or_Rethrow call returns (which
it's not supposed to do). It returns if it cannot find a place to unwind
to. Thus we would get what appears to be a "hang" when in reality it's just that
the EH couldn't be propagated further along.
Instead of infinitely looping (or calling `unwind', which none of our back-ends
support (it's lowered into nothing...)), call the @llvm.trap() intrinsic
instead. This may not conform to specific rules of a particular language, but
it's rather better than infinitely looping.
<rdar://problem/9175843&9233582>
llvm-svn: 129302
2011-04-11 21:32:34 +00:00
Johnny Chen
f79d5365de
Fix the bug where the immediate shift amount for Thumb logical shift instructions are incorrectly disassembled.
...
rdar://problem/9266265
llvm-svn: 129298
2011-04-11 21:14:35 +00:00
Evan Cheng
ef42bea704
Look pass copies when determining whether hoisting would end up inserting more copies. rdar://9266679
...
llvm-svn: 129297
2011-04-11 21:09:18 +00:00
Rafael Espindola
ffd2e5163b
implement .cfi_adjust_cfa_offset.
...
llvm-svn: 129296
2011-04-11 20:29:16 +00:00
Eli Friedman
2c81975bae
Get rid of useless comment; if a file uses functions from a given header,
...
it is obvious that it should be included.
llvm-svn: 129295
2011-04-11 20:16:05 +00:00
Owen Anderson
5140802cd9
Fix another using-CPSR-twice bug in my ADCS/SBCS cleanups, and make proper use of the Commutable bit.
...
llvm-svn: 129294
2011-04-11 20:12:19 +00:00
Jakob Stoklund Olesen
b16e948029
Skip a binary search when possible.
...
llvm-svn: 129293
2011-04-11 20:01:44 +00:00
Jakob Stoklund Olesen
7d05bce70c
Use a faster algorithm for computing MBB live-in registers after register allocation.
...
LiveIntervals::findLiveInMBBs has to do a full binary search for each segment.
llvm-svn: 129292
2011-04-11 20:01:41 +00:00
Garrison Venn
56c5ca2ee1
Because some systems have reported that this example would not build the
...
header file cstdio was added as an include.
llvm-svn: 129291
2011-04-11 19:52:49 +00:00
Johnny Chen
74adbddade
Trivial comment fix.
...
llvm-svn: 129288
2011-04-11 18:51:50 +00:00
Evan Cheng
fe917efc8b
Fix a couple of places where changes are made but not tracked.
...
llvm-svn: 129287
2011-04-11 18:47:20 +00:00
Johnny Chen
66fab75920
Check invalid register encodings for LdFrm/StFrm ARM instructions and flag them as
...
invalid instructions.
llvm-svn: 129286
2011-04-11 18:34:12 +00:00
Kevin Enderby
9377a52c12
Adding support for printing operands symbolically to llvm's public 'C'
...
disassembler API. Hooked this up to the ARM target so such tools as Darwin's
otool(1) can now print things like branch targets for example this:
blx _puts
instead of this:
blx #-36
And even print the expression encoded in the Mach-O relocation entried for
things like this:
movt r0, :upper16:((_foo-_bar)+1234)
llvm-svn: 129284
2011-04-11 18:08:50 +00:00
Jakob Stoklund Olesen
f8beafe207
Don't add live ranges for sub-registers when clobbering a physical register.
...
Both coalescing and register allocation already check aliases for interference,
so these extra segments are only slowing us down.
This speeds up both linear scan and the greedy register allocator.
llvm-svn: 129283
2011-04-11 18:08:10 +00:00
Jakob Stoklund Olesen
4fbbe3689d
Speed up LiveIntervalUnion::unify by handling end insertion specially.
...
This particularly helps with the initial transfer of fixed intervals.
llvm-svn: 129277
2011-04-11 15:00:44 +00:00
Jakob Stoklund Olesen
bfabc494f5
Time the initial seeding of live registers
...
llvm-svn: 129276
2011-04-11 15:00:42 +00:00
Jakob Stoklund Olesen
96d04c8e00
Don't shrink live ranges after dead code elimination unless it is going to help.
...
In particular, don't repeatedly recompute the PIC base live range after rematerialization.
llvm-svn: 129275
2011-04-11 15:00:39 +00:00
Oscar Fuentes
c6f2d0a4cf
CMake: remove some unnecesary code and ToDos.
...
Patch by arrowdodger!
llvm-svn: 129274
2011-04-11 14:52:39 +00:00
Jay Foad
0159a1ee11
Fix or remove code which seemed to think that the operand of a Constant
...
was always a User.
llvm-svn: 129272
2011-04-11 09:48:55 +00:00
Jay Foad
7c14a558fe
Don't include Operator.h from InstrTypes.h.
...
llvm-svn: 129271
2011-04-11 09:35:34 +00:00
Jay Foad
29426e87c1
Phi nodes always use an even number of operands, so don't ever allocate
...
an odd number.
llvm-svn: 129270
2011-04-11 09:25:51 +00:00
NAKAMURA Takumi
62920834fa
docs/CommandGuide/index.html: Fix CSS url to relative.
...
llvm-svn: 129268
2011-04-11 03:27:38 +00:00
NAKAMURA Takumi
2a7024fa6c
docs/CommandLine.html: "ize.
...
llvm-svn: 129267
2011-04-11 03:27:31 +00:00
Bill Wendling
35a9c3cd72
Revert r129235 pending a vetting of the EH rewrite.
...
--- Reverse-merging r129235 into '.':
D test/Feature/bb_attrs.ll
U include/llvm/BasicBlock.h
U include/llvm/Bitcode/LLVMBitCodes.h
U lib/VMCore/AsmWriter.cpp
U lib/VMCore/BasicBlock.cpp
U lib/AsmParser/LLParser.cpp
U lib/AsmParser/LLLexer.cpp
U lib/AsmParser/LLToken.h
U lib/Bitcode/Reader/BitcodeReader.cpp
U lib/Bitcode/Writer/BitcodeWriter.cpp
llvm-svn: 129259
2011-04-10 23:18:04 +00:00
Nicolas Geoffray
9137ee85de
Bugfix in the Cpp backend after API change on PHINode::Create.
...
llvm-svn: 129248
2011-04-10 17:39:40 +00:00
Oscar Fuentes
dbe99ba37d
CMake: support for using LLVM from client projects with find_package.
...
Patch by arrowdodger!
llvm-svn: 129247
2011-04-10 16:17:49 +00:00
Garrison Venn
88bd9d6bb8
Fixed more best practices, and explicit/implicit style guide issues.
...
llvm-svn: 129245
2011-04-10 14:06:52 +00:00
Oscar Fuentes
fe40844fb6
Reword instructions for running tests on Visual Studio.
...
Suggested by Maël Hörz.
llvm-svn: 129237
2011-04-10 01:41:55 +00:00
Bill Wendling
3d5450d809
Beginning of the Great Exception Handling Rewrite.
...
* Add a "landing pad" attribute to the BasicBlock.
* Modify the bitcode reader and writer to handle said attribute.
Later: The verifier will ensure that the landing pad attribute is used in the
appropriate manner. I.e., not applied to the entry block, and applied only to
basic blocks that are branched to via a `dispatch' instruction.
(This is a work-in-progress.)
llvm-svn: 129235
2011-04-10 00:04:27 +00:00
Chris Lattner
b799b2d4be
drive by bug fix: DenseMapInfo::isEqual should be determined according to
...
isEqual of its members, not operator==.
llvm-svn: 129233
2011-04-09 21:20:23 +00:00
Chris Lattner
077f0179bb
LLVMCC_EMITIR_FLAG is already either -emit-llvm or -fplugin-arg-dragonegg-emit-ir, so don't add an extra leading -. Clang doesn't accept --emit-llvm.
...
llvm-svn: 129232
2011-04-09 19:56:28 +00:00
Chris Lattner
96d2507e79
make stuff work when LLVMCC_OPTION is something like installed-clang, not just clang.
...
llvm-svn: 129229
2011-04-09 19:53:16 +00:00
Chris Lattner
fc4fe00a65
fix rdar://8735979 - "int 3" doesn't match to "int3". Unfortunately,
...
InstAlias doesn't allow matching immediate operands, so we have to write
C++ code to do this.
llvm-svn: 129223
2011-04-09 19:41:05 +00:00
Chris Lattner
214f114aa7
look for the verboten argument slot access in any order, thanks to Frits
...
for pointing this out
llvm-svn: 129217
2011-04-09 17:00:34 +00:00
Benjamin Kramer
26e7768f38
Fix potential buffer overflow on win32.
...
llvm-svn: 129214
2011-04-09 14:06:12 +00:00
Benjamin Kramer
2b6c96b43d
Don't store Twine temporaries, it's not safe.
...
And don't append the name over and over again in the loop.
llvm-svn: 129210
2011-04-09 11:26:27 +00:00
Benjamin Kramer
2792f2b86b
Make error message more useful.
...
llvm-svn: 129209
2011-04-09 10:10:35 +00:00
NAKAMURA Takumi
6bd36d56e4
docs/*.html: Make W3C HTML 4.01 Strict more compliant.
...
FIXME: The logo handling in ReleaseNotes.html
llvm-svn: 129208
2011-04-09 09:51:57 +00:00
Eli Friedman
9cca0715aa
Add back a couple checks removed by r129128; the fact that an intitializer
...
is an array of structures doesn't imply it's a ConstantArray of
ConstantStruct.
llvm-svn: 129207
2011-04-09 09:11:09 +00:00
Chris Lattner
88974f4625
fix PR9523, a crash in looprotate on a non-canonical loop made out of indirectbr.
...
llvm-svn: 129203
2011-04-09 07:25:58 +00:00
Chris Lattner
af1bccec68
Fix a bug where RecursivelyDeleteTriviallyDeadInstructions could
...
delete the instruction pointed to by CGP's current instruction
iterator, leading to a crash on the testcase. This fixes PR9578.
llvm-svn: 129200
2011-04-09 07:05:44 +00:00
Chris Lattner
cfe5aa65d2
Avoid excess precision issues that lead to generating host-compiler-specific code.
...
Switch lowering probably shouldn't be using FP for this. This resolves PR9581.
llvm-svn: 129199
2011-04-09 06:57:13 +00:00
Eli Friedman
17822fcde9
PR9604; try to deal with RAUW updates correctly in the AST. I'm not convinced
...
it's completely safe to cache the AST across LICM runs even with this fix,
but this fix can't hurt.
llvm-svn: 129198
2011-04-09 06:55:46 +00:00
Eli Friedman
4db39cefdb
Test for r129190.
...
llvm-svn: 129197
2011-04-09 06:39:43 +00:00
Chris Lattner
e53c95f180
fix PR9629 - We were lowering regexes like a{{b|c}}d into ab|cd, which
...
is substantially different than a(b|c)d. Form the latter regex instead.
This found a few problems in the testsuite, which serves as its test.
llvm-svn: 129196
2011-04-09 06:37:03 +00:00
Chris Lattner
418b1037b0
fix two completely broken tests, which were matching due to PR9629.
...
llvm-svn: 129195
2011-04-09 06:34:38 +00:00
Chris Lattner
ea6afab4b0
remove a bunch of CHECK lines that aren't checking what
...
they thought they were, because alternation was expanding
wrong in {{}}'s.
llvm-svn: 129194
2011-04-09 06:31:06 +00:00
Chris Lattner
0687ec7051
regexes are allowed to match empty things, e.g. {{.*}} in filecheck.
...
llvm-svn: 129193
2011-04-09 06:29:24 +00:00
Chris Lattner
53e0679d6f
various cleanups, no functionality change.
...
llvm-svn: 129192
2011-04-09 06:18:02 +00:00
Chris Lattner
8872ec3ff0
revert accidental commit.
...
llvm-svn: 129191
2011-04-09 06:01:28 +00:00
Chris Lattner
2bd7015de5
fix a potentially serious bug in AliasSet::removeCallSite
...
where we shrunk the list without updating the end iterator.
By inspection, from PR9639.
llvm-svn: 129190
2011-04-09 05:51:34 +00:00
Jakob Stoklund Olesen
ed47ed4e80
Build the Hopfield network incrementally when splitting global live ranges.
...
It is common for large live ranges to have few basic blocks with register uses
and many live-through blocks without any uses. This approach grows the Hopfield
network incrementally around the use blocks, completely avoiding checking
interference for some through blocks.
llvm-svn: 129188
2011-04-09 02:59:09 +00:00
Jakob Stoklund Olesen
4ad6c160a5
Precompute interference for neighbor blocks as long as there is no interference.
...
This doesn't require seeking in the live interval union, so it is very cheap.
llvm-svn: 129187
2011-04-09 02:59:05 +00:00
Chris Lattner
0359101df2
fix doc comment bug, noticed by Jochen
...
llvm-svn: 129186
2011-04-09 02:33:29 +00:00
Chris Lattner
41c80e89f3
have dag combine zap "store undef", which can be formed during call lowering
...
with undef arguments.
llvm-svn: 129185
2011-04-09 02:32:02 +00:00
Chris Lattner
1c42a4d159
don't test for codegen of 'store undef'
...
llvm-svn: 129184
2011-04-09 02:31:26 +00:00
NAKAMURA Takumi
e8a8fd658f
docs/tutorial/OCamlLangImpl7.html: Fix a href to missing Chapter 8.
...
llvm-svn: 129183
2011-04-09 02:14:41 +00:00
NAKAMURA Takumi
b10df26061
docs: Fix some in-package URLs.
...
(eg. trim http://llvm.org/docs/foo -> foo)
llvm-svn: 129182
2011-04-09 02:13:48 +00:00
NAKAMURA Takumi
ca46f5a3b5
docs: Canonicalize URLs.
...
llvm-svn: 129181
2011-04-09 02:13:37 +00:00
Sean Callanan
1426351c83
Redirected errors from the AsmParser to the proper
...
error stream, in cases where the AsmParser is
being invoked by EDDisassembler. Before, they
were being sent to errs() because no error handler
was installed in the SourceMgr.
llvm-svn: 129177
2011-04-09 00:37:25 +00:00
Sean Callanan
7ccf375622
Moved an access to an object past a NULL check,
...
making the MC disassembler tester more robust.
llvm-svn: 129175
2011-04-09 00:21:04 +00:00
Devang Patel
12599c2187
Add radar number for future reference.
...
llvm-svn: 129172
2011-04-08 23:52:04 +00:00
Devang Patel
778947c203
Simplify array bound checks and clarify comments. One element array can have same non-zero number as lower bound as well as upper bound.
...
llvm-svn: 129170
2011-04-08 23:39:38 +00:00
Nick Lewycky
bd10af96bd
Add a function for profiling to run at shutdown. Unlike the existing API, this
...
can be used even when main() isn't present in the Module, but it means that you
don't get to read argv[].
llvm-svn: 129163
2011-04-08 22:19:52 +00:00
Matt Beaumont-Gay
4e1796e8d1
Fix an apparent typo that made GCC complain
...
llvm-svn: 129160
2011-04-08 21:59:49 +00:00
Devang Patel
e39647951b
Do not emit DW_AT_upper_bound and DW_AT_lower_bound for unbouded array.
...
If lower bound is more then upper bound then consider it is an unbounded array.
An array is unbounded if non-zero lower bound is same as upper bound.
If lower bound and upper bound are zero than array has one element.
llvm-svn: 129156
2011-04-08 21:55:10 +00:00
Bill Wendling
c5d44ae3f4
Missing closed tag.
...
llvm-svn: 129155
2011-04-08 21:43:08 +00:00
Evan Cheng
74d92c1924
Change -arm-trap-func= into a non-arm specific option. Now Intrinsic::trap is lowered into a call to the specified trap function at sdisel time.
...
llvm-svn: 129152
2011-04-08 21:37:21 +00:00
Jim Grosbach
ecd7043883
Workaround g++ 4.2.1 warning diagnostic false positive.
...
llvm-svn: 129149
2011-04-08 21:11:20 +00:00
Johnny Chen
f2faf4e53a
Check opcoe (dmb, dsb) instead of bitfields matching.
...
llvm-svn: 129148
2011-04-08 20:03:46 +00:00
Johnny Chen
a9570f77d5
Hanlde the checking of bad regs for SMMLAR properly, instead of asserting.
...
PR9650
rdar://problem/9257565
llvm-svn: 129147
2011-04-08 19:41:22 +00:00
Johnny Chen
875e0e4626
Sanity check the option operand for DMB/DSB.
...
PR9648
rdar://problem/9257634
llvm-svn: 129146
2011-04-08 19:18:07 +00:00
Jim Grosbach
a5dcd98a47
Mark hasExtraDefRegAllocReq=1 on LDRD.
...
The previous cleanup of LDRD got overzealous and removed it, causing post-RA
scheduling to get overzealous in breaking antidependencies and invalidate these instructions. Hilarity and invalid assembly ensued.
rdar://9244161
llvm-svn: 129144
2011-04-08 18:47:05 +00:00
Chris Lattner
a868bbbb66
reindent this whole file and do a variety of stylistic cleanups.
...
This code is still a long way from following best practices.
llvm-svn: 129140
2011-04-08 18:02:51 +00:00
Chris Lattner
ca320f54da
fix this to build with the recent StructType changes.
...
llvm-svn: 129139
2011-04-08 17:56:47 +00:00
Jim Grosbach
18b81c52bb
Refactor MCJIT 32-bit section loading.
...
Teach 32-bit section loading to use the Memory Manager interface, just like
the 64-bit loading does. Tidy up a few other things here and there.
llvm-svn: 129138
2011-04-08 17:31:24 +00:00
Johnny Chen
74c74ba81c
MOVi16 and MOVTi16 does not allow pc as the dest register, while MOVi allows it.
...
Add tests for that.
llvm-svn: 129137
2011-04-08 17:29:58 +00:00
Nick Lewycky
466d0c1f93
llvm.global_[cd]tor is defined to be either external, or appending with an array
...
of { i32, void ()* }. Teach the verifier to verify that, deleting copies of
checks strewn about.
llvm-svn: 129128
2011-04-08 07:30:21 +00:00
Bill Wendling
33984c6973
Only emit the AvailableFeatures variable if it's used.
...
llvm-svn: 129124
2011-04-08 04:08:57 +00:00
Bruno Cardoso Lopes
a21d470870
Also add the late notes for Mips in the current release note
...
llvm-svn: 129122
2011-04-08 03:06:22 +00:00
Johnny Chen
7e51b4640f
Add sanity checking for bad register specifier(s) for the DPFrm instructions.
...
Add more test cases to exercise the logical branches related to the above change.
llvm-svn: 129117
2011-04-08 00:29:09 +00:00
Rafael Espindola
9a1a34b105
Update tests
...
llvm-svn: 129116
2011-04-07 23:51:25 +00:00
Rafael Espindola
b80875edee
Micro optimization and improved similarity with gas' output:
...
When two section names share a suffix, reuse the entry in shstrtab.
llvm-svn: 129115
2011-04-07 23:21:52 +00:00
Devang Patel
bc3d8b212f
Do not let debug info interfer with branch folding.
...
llvm-svn: 129114
2011-04-07 23:11:25 +00:00
Johnny Chen
165a07adf9
Add a VEXT test.
...
llvm-svn: 129111
2011-04-07 22:04:01 +00:00
Bill Wendling
bc3f79044a
Replace the old algorithm that emitted the "print the alias for an instruction"
...
with the newer, cleaner model. It uses the IAPrinter class to hold the
information that is needed to match an instruction with its alias. This also
takes into account the available features of the platform.
There is one bit of ugliness. The way the logic determines if a pattern is
unique is O(N**2), which is gross. But in reality, the number of items it's
checking against isn't large. So while it's N**2, it shouldn't be a massive time
sink.
llvm-svn: 129110
2011-04-07 21:20:06 +00:00
Rafael Espindola
ece7c9c282
If present, use gold's support for getting a file view. This prevents having
...
to map the file both in the linker and in the plugin.
llvm-svn: 129109
2011-04-07 21:11:00 +00:00
Evan Cheng
9a3f2772f0
Add option to emit @llvm.trap as a function call instead of a trap instruction. rdar://9249183.
...
llvm-svn: 129107
2011-04-07 20:31:12 +00:00
Rafael Espindola
88bc341061
Add support for .skip.
...
Patch by Roman Divacky.
Fixes PR9361.
llvm-svn: 129106
2011-04-07 20:26:23 +00:00
Akira Hatanaka
052163e6d3
Fix indentation.
...
llvm-svn: 129105
2011-04-07 20:25:10 +00:00
Akira Hatanaka
94ee37e487
Update ATUsed every time after expandRegLargeImmPair is called.
...
llvm-svn: 129104
2011-04-07 20:23:26 +00:00
Mon P Wang
27f3330132
Fixed encoding for VEXTqf
...
llvm-svn: 129101
2011-04-07 19:56:12 +00:00
Andrew Trick
2ad0b37318
Added a check in the preRA scheduler for potential interference on a
...
induction variable. The preRA scheduler is unaware of induction vars,
so we look for potential "virtual register cycles" instead.
Fixes <rdar://problem/8946719> Bad scheduling prevents coalescing
llvm-svn: 129100
2011-04-07 19:54:57 +00:00
Akira Hatanaka
d6f1c58914
Fix handling of functions with internal linkage.
...
llvm-svn: 129099
2011-04-07 19:51:44 +00:00
Johnny Chen
04efb8f6ce
Add sanity checking for invalid register encodings for signed/unsigned extend instructions.
...
Add some test cases.
llvm-svn: 129098
2011-04-07 19:28:58 +00:00
Johnny Chen
07606661f9
Add sanity checking for invalid register encodings for saturating instructions.
...
llvm-svn: 129096
2011-04-07 19:02:08 +00:00
Jakob Stoklund Olesen
64beb47783
Recompute hasPHIKill flags when shrinking live intervals.
...
PHI values may be deleted, causing the flags to be wrong. This fixes PR9616.
llvm-svn: 129092
2011-04-07 18:43:14 +00:00
Johnny Chen
194a2267ad
Add some more comments about checkings of invalid register numbers.
...
And two test cases.
llvm-svn: 129090
2011-04-07 18:33:19 +00:00
Rafael Espindola
e4e4e37580
Expose more passes to the C API.
...
llvm-svn: 129087
2011-04-07 18:20:46 +00:00
Jakob Stoklund Olesen
994c16833c
Avoid moving iterators when the previous block was just visited.
...
llvm-svn: 129081
2011-04-07 17:27:50 +00:00
Jakob Stoklund Olesen
1c0db0fd21
Prefer multiplications to divisions.
...
llvm-svn: 129080
2011-04-07 17:27:48 +00:00
Jakob Stoklund Olesen
6d2bbc1c20
Extract SpillPlacement::addLinks for handling the special transparent blocks.
...
llvm-svn: 129079
2011-04-07 17:27:46 +00:00
Devang Patel
197c35298a
While hoisting common code from if/else, hoist debug info intrinsics if they match.
...
llvm-svn: 129078
2011-04-07 17:27:36 +00:00
Tanya Lattner
266792a55a
Prevent ARM DAG Combiner from doing an AND or OR combine on an illegal vector type (vectors of size 3). Also included test cases.
...
llvm-svn: 129074
2011-04-07 15:24:20 +00:00
Jay Foad
65bef04ea7
Fix a bit of nonsense.
...
llvm-svn: 129073
2011-04-07 12:41:09 +00:00
Chris Lattner
5ddaab1789
add faust too
...
llvm-svn: 129053
2011-04-07 03:09:21 +00:00
Chris Lattner
caefe9346d
add a few late stragglers.
...
llvm-svn: 129052
2011-04-07 03:08:22 +00:00
Sean Callanan
6c6be946fc
Fixed a bug where missing EDInstInfo would cause
...
tokenization to crash and burn.
llvm-svn: 129051
2011-04-07 01:56:01 +00:00
Johnny Chen
313ec7953a
Sanity check MSRi for invalid mask values and reject it as invalid.
...
rdar://problem/9246844
llvm-svn: 129050
2011-04-07 01:37:34 +00:00
Eli Friedman
c5f22a7815
PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoad
...
is equivalent to any other relevant value; it isn't true in general.
If it is equivalent, the LoopPromoter will tell the AST the equivalence.
Also, delete the PreheaderLoad if it is unused.
Chris, since you were the last one to make major changes here, can you check
that this is sane?
llvm-svn: 129049
2011-04-07 01:35:06 +00:00
Johnny Chen
c0e86fb965
The ARM disassembler was not recognizing USADA8 instruction. Need to add checking for register values
...
for USAD8 and USADA8.
rdar://problem/9247060
llvm-svn: 129047
2011-04-07 01:05:52 +00:00
Evan Cheng
a7c7b54dde
Change -arm-divmod-libcall to a target neutral option.
...
llvm-svn: 129045
2011-04-07 00:58:44 +00:00
Evan Cheng
b7c9c407f9
Remove dead code. rdar://9221736.
...
llvm-svn: 129044
2011-04-07 00:56:37 +00:00
Johnny Chen
d4cced54b3
Should also check SMLAD for invalid register values.
...
rdar://problem/9246650
llvm-svn: 129042
2011-04-07 00:50:25 +00:00
Devang Patel
e48ddf863b
Simplify. isIdenticalToWhenDefined() checks opcode.
...
llvm-svn: 129041
2011-04-07 00:30:15 +00:00
Nick Lewycky
561f1755cc
Set unnamed_addr on strings created through the IRBuilder.
...
llvm-svn: 129040
2011-04-07 00:14:29 +00:00
Nick Lewycky
9363fdc9b7
Add support for ArrayRef in IRBuilder's CreateCall.
...
llvm-svn: 129039
2011-04-07 00:03:25 +00:00
Owen Anderson
bdff1c997a
Teach the ARM peephole optimizer that RSB, RSC, ADC, and SBC can be used for folded comparisons, just like ADD and SUB.
...
llvm-svn: 129038
2011-04-06 23:35:59 +00:00
Owen Anderson
f9bd6bad8a
Cleanups from Jim: remove redundant constraints and a dead FIXME.
...
llvm-svn: 129036
2011-04-06 22:45:55 +00:00
Devang Patel
d715ec82b4
While folding branch to a common destination into a predecessor, copy dbg values also.
...
llvm-svn: 129035
2011-04-06 22:37:20 +00:00
Jim Grosbach
6ade7e0bac
Tidy up.
...
llvm-svn: 129034
2011-04-06 22:35:47 +00:00
Johnny Chen
bd9a4f8d07
A8.6.393
...
The ARM disassembler should reject invalid (type, align) encodings as invalid instructions.
So, instead of:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
vst2.32 {d0, d2}, [r3, :256], r3
we now have:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
mc-input.txt:1:1: warning: invalid instruction encoding
0xb3 0x9 0x3 0xf4
^
llvm-svn: 129033
2011-04-06 22:14:48 +00:00
Jim Grosbach
9c14679260
tidy up.
...
llvm-svn: 129032
2011-04-06 22:13:52 +00:00
Jakob Stoklund Olesen
8ce2f43694
Also account for the spill code that would be inserted in live-through blocks with interference.
...
llvm-svn: 129030
2011-04-06 21:32:41 +00:00
Jakob Stoklund Olesen
81439a83f4
Abort the constraint calculation early when all positive bias is lost.
...
Without any positive bias, there is nothing for the spill placer to to. It will
spill everywhere.
llvm-svn: 129029
2011-04-06 21:32:38 +00:00
Nick Lewycky
469d171ae2
Fix typo in doxy-comment.
...
llvm-svn: 129028
2011-04-06 20:54:07 +00:00
Johnny Chen
2ac486e387
A8.6.92 MCR (Encoding A1): if coproc == '101x' then SEE "Advanced SIMD and VFP"
...
Since these "Advanced SIMD and VFP" instructions have more specfic encoding bits
specified, if coproc == 10 or 11, we should reject the insn as invalid.
rdar://problem/9239922
rdar://problem/9239596
llvm-svn: 129027
2011-04-06 20:49:02 +00:00
Nick Lewycky
0cbfcb2b6d
Fix comment to use llvm 2.x syntax.
...
llvm-svn: 129025
2011-04-06 20:38:44 +00:00
Nick Lewycky
e30f330393
Replace const std::vector& with ArrayRef in the type creation APIs.
...
llvm-svn: 129024
2011-04-06 20:28:34 +00:00
Jakob Stoklund Olesen
6895b87dfe
Keep track of the number of positively biased nodes when adding constraints.
...
If there are no positive nodes, the algorithm can be aborted early.
llvm-svn: 129021
2011-04-06 19:14:00 +00:00
Jakob Stoklund Olesen
36b5d8a698
Break the spill placement algorithm into three parts: prepare, addConstraints, and finish.
...
This will allow us to abort the algorithm early if it is determined to be futile.
llvm-svn: 129020
2011-04-06 19:13:57 +00:00
Roman Divacky
620f6967e0
Fix a typo.
...
llvm-svn: 129019
2011-04-06 19:12:21 +00:00
Johnny Chen
8bca174f48
Fix a bug in the disassembly of VGETLNs8 where the lane index was wrong.
...
Also set the encoding bits (for A8.6.303, A8.6.328, A8.6.329) Inst{3-0} = 0b0000,
in class NVLaneOp.
rdar://problem/9240648
llvm-svn: 129015
2011-04-06 18:27:46 +00:00
Rafael Espindola
b4dd95b4f9
Add another case we are not optimizing.
...
llvm-svn: 129012
2011-04-06 17:35:32 +00:00
Rafael Espindola
7a3b244d45
The original issue has been fixed by not doing unnecessary sign extensions.
...
Change the test to force a sign extension and expose the problem again.
llvm-svn: 129011
2011-04-06 17:19:35 +00:00
Devang Patel
8aa6c326ac
face+palm
...
Keep track of llvm.dbg.value intrinsics with non null values.
llvm-svn: 129010
2011-04-06 17:08:15 +00:00
Rafael Espindola
337a1b29e5
Do a topological sort of the types before writing them out.
...
This takes the linking of libxul on linux from 6m54.931s to 5m39.840s.
llvm-svn: 129009
2011-04-06 16:49:37 +00:00
Jim Grosbach
300504c135
EngineBuilder setter method for UseMCJIT was missing return value.
...
llvm-svn: 129008
2011-04-06 16:35:19 +00:00
Chris Lattner
958d299fca
add rubinius
...
llvm-svn: 129006
2011-04-06 16:14:25 +00:00
Frits van Bommel
87e3367d32
Fix a few instances of "warning: extra ';' outside of a function [-pedantic]".
...
llvm-svn: 129002
2011-04-06 12:29:56 +00:00
Nadav Rotem
cc771acd77
This testcase passed even without the fix. Added the target info to make the
...
test fail (without the fix). Thanks Dan.
llvm-svn: 128999
2011-04-06 11:18:29 +00:00
Duncan Sands
ce5d9aedb9
Fix some typos. Minor tweaks to how some things were expressed.
...
llvm-svn: 128997
2011-04-06 08:07:40 +00:00
Jay Foad
1a7cc44157
Trivial typo fixes.
...
llvm-svn: 128996
2011-04-06 07:55:30 +00:00
Nick Lewycky
d4b3d29c50
Add an empty key for DebugLoc so that you can store an empty DebugLoc in a
...
DenseMap.
llvm-svn: 128994
2011-04-06 06:49:59 +00:00
Chris Lattner
17c170a8e0
Finish up the first draft of the release notes.
...
improvements are welcome, please commit any changes directly to SVN.
llvm-svn: 128992
2011-04-06 06:29:50 +00:00
Chris Lattner
23e16b59d2
continue writing.
...
llvm-svn: 128990
2011-04-06 05:50:04 +00:00
Nick Lewycky
ddc72895d0
Support using DebugLoc's in a DenseMap.
...
llvm-svn: 128988
2011-04-06 05:36:52 +00:00
Jakob Stoklund Olesen
f3b2dcc74d
Oops. Scary.
...
llvm-svn: 128986
2011-04-06 04:07:14 +00:00
Jakob Stoklund Olesen
bf91c4e85e
Analyze blocks with uses separately from live-through blocks without uses.
...
About 90% of the relevant blocks are live-through without uses, and the only
information required about them is their number. This saves memory and enables
later optimizations that need to look at only the use-blocks.
llvm-svn: 128985
2011-04-06 03:57:00 +00:00
Johnny Chen
0ec0e98a6a
Add a missing opcode (SMLSLDX) to BadRegsMulFrm() function.
...
Add more complete sanity check for LdStFrm instructions where if IBit (Inst{25})
is 1, Inst{4} should be 0. Otherwise, we should reject the insn as invalid.
rdar://problem/9239347
rdar://problem/9239467
llvm-svn: 128977
2011-04-06 01:18:32 +00:00
Chris Lattner
ae6a89a890
add the external users that emailed me.
...
llvm-svn: 128974
2011-04-06 01:13:49 +00:00
Jim Grosbach
23de2437bd
RuntimeDyld should use the memory manager API.
...
Start teaching the runtime Dyld interface to use the memory manager API
for allocating space. Rather than mapping directly into the MachO object,
we extract the payload for each object and copy it into a dedicated buffer
allocated via the memory manager. For now, just do Segment64, so this works
on x86_64, but not yet on ARM.
llvm-svn: 128973
2011-04-06 01:11:05 +00:00
Chris Lattner
14a3333cb3
some libc++ notes.
...
llvm-svn: 128970
2011-04-06 00:59:18 +00:00
Chris Lattner
9d5b3712de
some edits.
...
llvm-svn: 128969
2011-04-06 00:56:12 +00:00
Chris Lattner
c3a2c9817c
distribute content out to the appropriate sections
...
llvm-svn: 128968
2011-04-06 00:45:11 +00:00
Owen Anderson
867846b1f0
Reapply r128946 (pseudoization of various instructions), and fix the extra imp-def of CPSR it was adding.
...
llvm-svn: 128965
2011-04-05 23:55:28 +00:00
Chandler Carruth
086f7080d6
Make the virtual destructor out-of-line so we have a key function.
...
llvm-svn: 128964
2011-04-05 23:54:31 +00:00
Jakob Stoklund Olesen
858afbb6ac
Sign error
...
llvm-svn: 128963
2011-04-05 23:43:16 +00:00
Jakob Stoklund Olesen
5c482cd38f
Don't crash when a value is defined after the last split point.
...
llvm-svn: 128962
2011-04-05 23:43:14 +00:00
Jakob Stoklund Olesen
30b5473d82
Permit blocks to branch directly to a landing pad.
...
Treat the landing pad as a normal successor when that happens.
llvm-svn: 128961
2011-04-05 23:43:11 +00:00
Jim Grosbach
f642c1b600
Remove extraneous 'return'.
...
llvm-svn: 128959
2011-04-05 23:39:08 +00:00
Johnny Chen
f6e327c6a3
Fix a typo in the handling of PKHTB opcode, plus add sanity check for illegal register
...
encodings for DisassembleArithMiscFrm().
rdar://problem/9238659
llvm-svn: 128958
2011-04-05 23:28:00 +00:00
Chris Lattner
ce6b047a10
finished my pass through all the 2.9 commits, now to make this intelligible
...
llvm-svn: 128955
2011-04-05 23:22:33 +00:00
Chris Lattner
a76507fdc3
mention llvm::ArrayRef, which should be use much more pervasively than
...
it already is.
llvm-svn: 128954
2011-04-05 23:18:20 +00:00
Bob Wilson
d135c696c0
Clean up some code for clarity.
...
llvm-svn: 128953
2011-04-05 23:03:25 +00:00
Chandler Carruth
f920fbf94b
Provide an empty virtual destructor to go with the virtual methods in
...
this class. Clang was warning on this with -Wnon-virtual-dtor.
llvm-svn: 128952
2011-04-05 23:03:24 +00:00
Owen Anderson
61e7a935bd
Revert r128946 while I figure out why it broke the buildbots.
...
llvm-svn: 128951
2011-04-05 23:03:06 +00:00
Johnny Chen
c3656d29f6
A7.3 register encoding
...
Qd -> bit[12] == 0
Qn -> bit[16] == 0
Qm -> bit[0] == 0
If one of these bits is 1, the instruction is UNDEFINED.
rdar://problem/9238399
rdar://problem/9238445
llvm-svn: 128949
2011-04-05 22:57:07 +00:00
Devang Patel
9f738849ab
Add support to encode function's template parameters.
...
llvm-svn: 128947
2011-04-05 22:52:06 +00:00
Owen Anderson
3501655ad9
Give RSBS and RSCS the pseudo treatment.
...
llvm-svn: 128946
2011-04-05 22:42:54 +00:00
Johnny Chen
9da60e016b
ARM disassembler was erroneously accepting an invalid RSC instruction.
...
Added checks for regs which should not be 15.
rdar://problem/9237734
llvm-svn: 128945
2011-04-05 22:18:07 +00:00
Chris Lattner
57ee5a5db7
remove postdom frontiers, because it is dead. Forward dom frontiers are
...
still used by RegionInfo :(
llvm-svn: 128943
2011-04-05 21:57:17 +00:00
NAKAMURA Takumi
530d739097
docs/ReleaseNotes.html: Please use proper *Heading* elements instead of classified div.
...
It would be better to browse without stylesheet. (eg. on ViewVC)
llvm-svn: 128942
2011-04-05 21:55:14 +00:00
Johnny Chen
25883487a1
ARM disassembler was erroneously accepting an invalid LSL instruction.
...
For register-controlled shifts, we should check that the encoding constraint
Inst{7} = 0 and Inst{4} = 1 is satisfied.
rdar://problem/9237693
llvm-svn: 128941
2011-04-05 21:49:44 +00:00
Owen Anderson
77aa266de8
Fix bugs in the pseuo-ization of ADCS/SBCS pointed out by Jim, as well as doing the expansion earlier (using a custom inserter) to allow for the chance of predicating these instructions.
...
llvm-svn: 128940
2011-04-05 21:48:57 +00:00
Chris Lattner
706754c1f2
remove graphprinter support for domfrontier.
...
llvm-svn: 128938
2011-04-05 21:43:56 +00:00
Jakob Stoklund Olesen
1ec41e2bd9
These tests no longer require linear scan because reserved register coalescing is now universal.
...
llvm-svn: 128936
2011-04-05 21:40:41 +00:00
Jakob Stoklund Olesen
6aa0fbf4c0
Run LiveDebugVariables in RegAllocBasic and RegAllocGreedy.
...
llvm-svn: 128935
2011-04-05 21:40:37 +00:00
Chris Lattner
269ef9f6f0
only 7 more weeks to go.
...
llvm-svn: 128933
2011-04-05 21:37:08 +00:00
Devang Patel
d4e20eacf0
Refactor.
...
llvm-svn: 128929
2011-04-05 21:08:24 +00:00
Jakob Stoklund Olesen
04123d40cd
Document llvm/ADT/IntEqClasses.h in ProgrammersManual.html
...
llvm-svn: 128927
2011-04-05 20:56:08 +00:00
Bob Wilson
6c20b88173
Add an assertion instead of crashing when the scavenger goes past the end
...
of a basic block.
llvm-svn: 128925
2011-04-05 20:44:15 +00:00
Nick Lewycky
ee54fa29d5
Fix typos. Adjust some whitespace for style. No functionality change.
...
llvm-svn: 128924
2011-04-05 20:39:27 +00:00
Johnny Chen
e9c644d4a0
The r128085 checkin modified the operand ordering for MRC/MRC2 instructions.
...
Modify DisassembleCoprocessor() of ARMDisassemblerCore.cpp to react to the change.
rdar://problem/9236873
llvm-svn: 128922
2011-04-05 20:32:23 +00:00
Roman Divacky
92d313a021
Add support for detection of Intel SandyBridge.
...
llvm-svn: 128920
2011-04-05 20:25:36 +00:00
Jakob Stoklund Olesen
e20fec7732
Fix one more batch of X86 tests to be register allocation dependent.
...
llvm-svn: 128919
2011-04-05 20:20:30 +00:00
Jakob Stoklund Olesen
18fd84c79a
When dead code elimination removes all but one use, try to fold the single def into the remaining use.
...
Rematerialization can leave single-use loads behind that we might as well fold whenever possible.
llvm-svn: 128918
2011-04-05 20:20:26 +00:00
Devang Patel
651d06e036
Do not emit empty name.
...
llvm-svn: 128914
2011-04-05 20:14:13 +00:00
Johnny Chen
151582492d
ARM disassembler should flag (rGPRRegClassID, r13|r15) as an error.
...
llvm-svn: 128913
2011-04-05 19:42:11 +00:00
Andrew Trick
40d388c25e
Fix a typo.
...
llvm-svn: 128912
2011-04-05 19:13:11 +00:00
Andrew Trick
12004013ef
Added *hidden* flags -print-options and -print-all-options so
...
developers can see if their driver changed any cl::Option's. The
current implementation isn't perfect but handles most kinds of
options. This is nice to have when decomposing the stages of
compilation and moving between different drivers. It's also a good
sanity check when comparing results produced by different command line
invocations that are expected to produce the comparable results.
Note: This is not an attempt to prolong the life of cl::Option. On the
contrary, it's a placeholder for a feature that must exist when
cl::Option is replaced by a more appropriate framework. A new
framework needs: a central option registry, dynamic name lookup,
non-global containers of option values (e.g. per-module,
per-function), *and* the ability to print options values and their defaults at
any point during compilation.
llvm-svn: 128910
2011-04-05 18:54:36 +00:00
Johnny Chen
56c15c64b0
LDRD now prints out two dst registers.
...
llvm-svn: 128909
2011-04-05 18:53:14 +00:00
Johnny Chen
293875ef55
Fix test-llvm failures.
...
llvm-svn: 128906
2011-04-05 18:41:40 +00:00
Andrew Trick
b826ae8310
whitespace
...
llvm-svn: 128905
2011-04-05 18:41:31 +00:00
Shantonu Sen
e59f8ca49e
An MCDisassembler has the option to not implement
...
getEDInfo(), in which case this code would dereference
NULL. EDInst can already handle NULL info, so avoid
the dereference and pass NULL through.
Reviewed by Sean Callanan
llvm-svn: 128904
2011-04-05 18:40:45 +00:00
Jim Grosbach
d9dce561b6
Make second source operand of LDRD pre/post explicit.
...
Finish what r128736 started.
llvm-svn: 128903
2011-04-05 18:40:13 +00:00
Chris Lattner
9ee0b01617
more notes to self.
...
llvm-svn: 128902
2011-04-05 18:38:45 +00:00
Johnny Chen
33d3a9fadc
Constants with multiple encodings (ARM):
...
An alternative syntax is available for a modified immediate constant that permits the programmer to specify
the encoding directly. In this syntax, #<const> is instead written as #<byte>,#<rot>, where:
<byte> is the numeric value of abcdefgh, in the range 0-255
<rot> is twice the numeric value of rotation, an even number in the range 0-30.
llvm-svn: 128897
2011-04-05 18:02:46 +00:00
Johnny Chen
268d63f307
Check for invalid register encodings for UMAAL and friends where:
...
if dLo == 15 || dHi == 15 || n == 15 || m == 15 then UNPREDICTABLE;
if dHi == dLo then UNPREDICTABLE;
rdar://problem/9230202
llvm-svn: 128895
2011-04-05 17:43:10 +00:00
Owen Anderson
f7678b83d2
Convert ADCS and SBCS instructions into pseudos that are expanded to the ADC/ABC with the appropriate S-bit input value.
...
llvm-svn: 128892
2011-04-05 17:24:25 +00:00
Stuart Hastings
345094777f
ARM doesn't support byval yet. XFAIL this test until it does.
...
llvm-svn: 128891
2011-04-05 17:16:21 +00:00