Dan Gohman
12293815de
Fix SCEVCommutativeExpr::print to be robust in the case of improper
...
expression canonicalization. Its job is to print what's there, not to
make judgements about it.
llvm-svn: 101461
2010-04-16 15:03:25 +00:00
Dan Gohman
aa4d9ea465
Delete a blank line.
...
llvm-svn: 101459
2010-04-16 13:32:55 +00:00
Bill Wendling
ae4541d758
Add JIT exception handling test.
...
llvm-svn: 101455
2010-04-16 09:04:28 +00:00
Bill Wendling
929f3c0927
The JIT calls TidyLandingPads to tidy up the landing pads. However, because the
...
JIT doesn't use the MC back-end asm printer to emit labels that it uses, the
section for the MCSymbol is never set. And thus the MCSymbol for the EH label
isn't marked as "defined". Because of that, TidyLandingPads removes the needed
landing pads from the JIT output. This breaks EH for every JIT program.
This is a work-around for this limitation. We pass in the label locations
map. If the label has a non-zero value, then it was "emitted" by the JIT and
TidyLandingPads shouldn't remove that label.
A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely
upon the section being set to determine if it's defined or not.
llvm-svn: 101453
2010-04-16 08:46:10 +00:00
Chris Lattner
408f79197c
completed my pass over all 6+ months of commits, next step, format and make comprehendable.
...
llvm-svn: 101449
2010-04-16 06:20:22 +00:00
Evan Cheng
af56facacd
Adding support for dag combiner to promote operations for profit. This requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding.
...
x86 support is off by default. It can be enabled with -promote-16bit.
Work in progress.
llvm-svn: 101448
2010-04-16 06:14:10 +00:00
Evan Cheng
3da64f7672
Use getAL() rather than a major constant.
...
llvm-svn: 101446
2010-04-16 05:46:06 +00:00
Eric Christopher
dea3bda860
Add a check for posix_spawn.
...
Regenerate configure and other autoconf files.
llvm-svn: 101444
2010-04-16 05:14:21 +00:00
Dan Gohman
5563473062
Refine further the scope where the global DebugLoc value is active.
...
llvm-svn: 101443
2010-04-16 05:06:56 +00:00
Nick Lewycky
bb2ec7de9c
Revert r64616 which worked around http://gcc.gnu.org/PR42757 , we just didn't
...
know it at the time.
llvm-svn: 101439
2010-04-16 04:32:20 +00:00
Eric Christopher
206d7ce582
Silence an unused variable warning.
...
llvm-svn: 101438
2010-04-16 04:02:04 +00:00
Chris Lattner
bd2d9430d6
fix comment noticed by Bob
...
llvm-svn: 101437
2010-04-16 02:32:17 +00:00
Gabor Greif
403e9694f9
back out r101423 and r101397, they break llvm-gcc self-host on darwin10
...
llvm-svn: 101434
2010-04-16 01:16:20 +00:00
Chris Lattner
393e08536d
move comment.
...
llvm-svn: 101433
2010-04-16 01:05:52 +00:00
Chris Lattner
1146d326a7
fix PR6832: we were using the alignment of a pointer when we
...
wanted the alignment of the pointee.
llvm-svn: 101432
2010-04-16 01:05:38 +00:00
Dan Gohman
0977358509
Create an exports file, so that the plugin only exports the onload symbol.
...
llvm-svn: 101431
2010-04-16 00:43:25 +00:00
Dan Gohman
ebb4ae0912
Make things static that don't need to be referenced from outside the file.
...
llvm-svn: 101430
2010-04-16 00:42:57 +00:00
Chris Lattner
b73552908e
improve comments.
...
llvm-svn: 101429
2010-04-16 00:38:19 +00:00
Chris Lattner
78d7dbbc30
pull all the ConvertToScalarInfo code together into one
...
place.
llvm-svn: 101427
2010-04-16 00:24:57 +00:00
Chris Lattner
d69c3ee958
more refactoring: suck some stuff out of SRoA into
...
ConvertToScalarInfo.
llvm-svn: 101425
2010-04-16 00:20:00 +00:00
Gabor Greif
6af0ad846e
shift intrinsic operand
...
llvm-svn: 101423
2010-04-16 00:06:45 +00:00
Chris Lattner
9ef4eae6e6
introduce a new ConvertToScalarInfo struct to simplify
...
CanConvertToScalar/MergeInType. Eliminate a pointless
LLVMContext argument to MergeInType.
llvm-svn: 101422
2010-04-15 23:50:26 +00:00
Jakob Stoklund Olesen
cdc3df4888
Avoid sinking machine instructions into a loop.
...
MachineLoopInfo is already available when MachineSinking runs, so the check is
free.
There is no test case because it would require a critical edge into a loop, and
CodeGenPrepare splits those. This check is just to be extra careful.
llvm-svn: 101420
2010-04-15 23:41:02 +00:00
Johnny Chen
1d3ee607b3
Added another test case for am3offset operand, testing Rn, #+/-imm8.
...
Previous checkin tested Rn, #+/-Rm.
llvm-svn: 101418
2010-04-15 23:23:40 +00:00
Jakob Stoklund Olesen
dc6d42dbf8
Add test case for machine-sink on critical edges
...
llvm-svn: 101416
2010-04-15 23:19:16 +00:00
Johnny Chen
acbc06c2a3
Fixed a bug in ARM disassembly where LDRSBT should have am3offset operand, not
...
am2offset. Modified the instruction table entry and added a new test case.
llvm-svn: 101415
2010-04-15 23:12:47 +00:00
Dan Gohman
ff9ecb2824
Make the export files absolute paths, and change Makefile.rules
...
to expect them this way, to fix srcdir!=objdir builds.
llvm-svn: 101414
2010-04-15 23:08:00 +00:00
Dan Gohman
1639265421
Add a dependency on the .dir file to make sure that the directory
...
is created before the native exports file is built in a parallel build.
llvm-svn: 101413
2010-04-15 22:46:27 +00:00
Evan Cheng
f7f97b4bbd
Use default lowering of DYNAMIC_STACKALLOC. As far as I can tell, ARM isle is doing the right thing and codegen looks correct for both Thumb and Thumb2.
...
llvm-svn: 101410
2010-04-15 22:20:34 +00:00
Chris Lattner
9c1172d848
tidy interface to isOnlyCopiedFromConstantGlobal
...
llvm-svn: 101405
2010-04-15 21:59:20 +00:00
Daniel Dunbar
73fa324609
Don't use absolute path for EXPORTED_SYMBOL_FILE, this breaks under the new
...
system.
llvm-svn: 101404
2010-04-15 21:57:43 +00:00
Dan Gohman
473a53f7b1
Generalize the EXPORTED_SYMBOL_FILE concept in the Makefiles to work with
...
native linking export files, including running sed to prepend underscores
on darwin, and make use of it in libLTO and libEnhancedDisassembly.
Remove the leading underscores from library export files so that they
work with the new EXPORTED_SYMBOL_FILE support.
llvm-svn: 101399
2010-04-15 20:54:25 +00:00
Gabor Greif
33ae80bff7
reapply r101364, which has been backed out in r101368
...
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
2010-04-15 20:51:13 +00:00
Duncan Sands
626b02470b
Pointed out by housel on #llvm.
...
llvm-svn: 101395
2010-04-15 20:35:54 +00:00
Jakob Stoklund Olesen
b642a27525
Fix PR6847. RegScavenger should ignore DebugValues.
...
llvm-svn: 101392
2010-04-15 20:28:39 +00:00
Nicolas Geoffray
19cd1d84ad
Make sure the initialization of a GC root is after its definition.
...
llvm-svn: 101388
2010-04-15 19:53:35 +00:00
Anton Korobeynikov
839cdaa70a
Revert r100896 and around - this breaks the only mingw32 buildbot we have.
...
llvm-svn: 101387
2010-04-15 19:51:42 +00:00
Gabor Greif
b36d07cb93
prune includes
...
llvm-svn: 101385
2010-04-15 19:44:21 +00:00
Evan Cheng
1ba1428577
ARM SelectDYN_ALLOC should emit a copy from SP rather than referencing SP directly. In cases where there are two dyn_alloc in the same BB it would have caused the old SP value to be reused and badness ensues. rdar://7493908
...
llvm is generating poor code for dynamic alloca, I'll fix that later.
llvm-svn: 101383
2010-04-15 18:42:28 +00:00
Johnny Chen
4230e35879
DEBUG() print out "Unknown format" msg.
...
llvm-svn: 101382
2010-04-15 18:13:51 +00:00
Dan Gohman
48a189280e
ReuseFrameIndexVals is used in multiple files, so it can't be static.
...
llvm-svn: 101379
2010-04-15 17:34:58 +00:00
Dan Gohman
2085719a98
EnablePPC64RS and EnablePPC32RS are used in multiple files, so they
...
can't be static.
llvm-svn: 101377
2010-04-15 17:20:57 +00:00
Dan Gohman
b29cda9b3c
Fix a bunch of namespace polution.
...
llvm-svn: 101376
2010-04-15 17:08:50 +00:00
Dan Gohman
345356ee9a
Fix namespace polution.
...
llvm-svn: 101375
2010-04-15 16:23:27 +00:00
Dan Gohman
4e3c1139a2
Make getPredecessorWithUniqueSuccessorForBB return the unique successor
...
in addition to the predecessor.
llvm-svn: 101374
2010-04-15 16:19:08 +00:00
Gabor Greif
ff3c8b7eaf
typos
...
llvm-svn: 101371
2010-04-15 15:14:46 +00:00
Gabor Greif
9fd00c7d25
back out r101364, as it trips the linux nightlybot on some clang C++ tests
...
llvm-svn: 101368
2010-04-15 12:46:56 +00:00
Benjamin Kramer
a944a9a902
Simplify ".bc" detection.
...
llvm-svn: 101365
2010-04-15 11:33:14 +00:00
Gabor Greif
aafd209632
rotate CallInst operands, i.e. move callee to the back
...
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
2010-04-15 10:49:53 +00:00
Chris Lattner
3245afdf05
enhance the load/store narrowing optimization to handle a
...
tokenfactor in between the load/store. This allows us to
optimize test7 into:
_test7: ## @test7
## BB#0: ## %entry
movl (%rdx), %eax
## kill: SIL<def> ESI<kill>
movb %sil, 5(%rdi)
ret
instead of:
_test7: ## @test7
## BB#0: ## %entry
movl 4(%esp), %ecx
movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF
andl 4(%ecx), %eax
movzbl 8(%esp), %edx
shll $8, %edx
addl %eax, %edx
movl 12(%esp), %eax
movl (%eax), %eax
movl %edx, 4(%ecx)
ret
llvm-svn: 101355
2010-04-15 06:10:49 +00:00
Chris Lattner
6ebd8674eb
teach codegen to turn trunc(zextload) into load when possible.
...
This doesn't occur much at all, it only seems to formed in the case
when the trunc optimization kicks in due to phase ordering. In that
case it is saves a few bytes on x86-32.
llvm-svn: 101350
2010-04-15 05:40:59 +00:00
Chris Lattner
f9b2e3c68a
add a simple dag combine to replace trivial shl+lshr with
...
and. This happens with the store->load narrowing stuff.
llvm-svn: 101348
2010-04-15 05:28:43 +00:00
Chris Lattner
4041ab6e00
Implement rdar://7860110 (also in target/readme.txt) narrowing
...
a load/or/and/store sequence into a narrower store when it is
safe. Daniel tells me that clang will start producing this sort
of thing with bitfields, and this does trigger a few dozen times
on 176.gcc produced by llvm-gcc even now.
This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll
into:
movl %eax, 36(%rdi)
instead of:
movl $4294967295, %eax ## imm = 0xFFFFFFFF
andq 32(%rdi), %rax
shlq $32, %rcx
addq %rax, %rcx
movq %rcx, 32(%rdi)
and each of the testcases into a single store. Each of them used
to compile into craziness like this:
_test4:
movl $65535, %eax ## imm = 0xFFFF
andl (%rdi), %eax
shll $16, %esi
addl %eax, %esi
movl %esi, (%rdi)
ret
llvm-svn: 101343
2010-04-15 04:48:01 +00:00
Dan Gohman
913c998703
Add more const qualifiers for LLVM IR pointers in CodeGen.
...
llvm-svn: 101342
2010-04-15 04:33:49 +00:00
Chris Lattner
60bbb8c356
further tweak this to do something useful.
...
llvm-svn: 101341
2010-04-15 04:31:42 +00:00
Chris Lattner
9ebaf531ab
remove undef control flow.
...
llvm-svn: 101340
2010-04-15 04:30:19 +00:00
Daniel Dunbar
f43481df34
Remove unnecessary uses of <iostream>.
...
llvm-svn: 101338
2010-04-15 03:47:24 +00:00
Daniel Dunbar
5f372e2f13
tests: MC/Disassembler tests depend on ARM support being compiler in.
...
llvm-svn: 101337
2010-04-15 03:47:20 +00:00
Chris Lattner
2df4fa5bc8
fix a crash on "lli ex" or any other file whose name is exactly two
...
characters long.
llvm-svn: 101336
2010-04-15 03:32:19 +00:00
Anders Carlsson
47bccf7f28
Fix build.
...
llvm-svn: 101335
2010-04-15 03:11:28 +00:00
Dan Gohman
bcaf681cde
Add const qualifiers to CodeGen's use of LLVM IR constructs.
...
llvm-svn: 101334
2010-04-15 01:51:59 +00:00
Eric Christopher
eabc9623da
Allow lowering for palignr instructions for mmx sized vectors. Add
...
patterns to handle the lowering.
llvm-svn: 101331
2010-04-15 01:40:20 +00:00
Evan Cheng
87b4f7c1aa
More 80 violations.
...
llvm-svn: 101330
2010-04-15 01:25:27 +00:00
Johnny Chen
0175ec1263
Wrap the error msgs in DEBUG() macro so that they won't appear in NDEBUG build.
...
llvm-svn: 101329
2010-04-15 01:20:56 +00:00
Evan Cheng
8442ef6f89
80 col violations.
...
llvm-svn: 101325
2010-04-15 01:01:55 +00:00
Devang Patel
3d6c40c616
Add comment.
...
llvm-svn: 101317
2010-04-15 00:02:49 +00:00
Devang Patel
97bdf94da3
There is no need to track compile unit offsets if there is only one compile unit.
...
llvm-svn: 101315
2010-04-14 23:56:24 +00:00
Devang Patel
b08ccb62d5
Remove dead code.
...
llvm-svn: 101314
2010-04-14 23:54:13 +00:00
Tobias Grosser
de1a37b872
IPO needs ScalarOpts and InstCombine in its libs
...
The commit "Adding IPSCCP and Internalize passes to the C-bindings" introduced
new dependencies for IPO. Add these to the CMAKE build as otherwise the
BUILD_SHARED_LIBS=1 build fails.
llvm-svn: 101313
2010-04-14 23:42:23 +00:00
Johnny Chen
82c50b11fa
Fixed another assert exposed by fuzzing. Now, the DisassembleVFPLdStMulFrm()
...
function checks whether we have a valid submode for VLDM/VSTM (must be either
"ia" or "db") before calling ARM_AM::getAM5Opc(AMSubMode, unsigned char).
llvm-svn: 101306
2010-04-14 22:37:17 +00:00
Jim Grosbach
32bb362655
Add -arm-long-calls option to force calls to be indirect. This makes the
...
kernel linker happier when dealing with kexts.
Radar 7805069
llvm-svn: 101303
2010-04-14 22:28:31 +00:00
Dan Gohman
20c87b1adf
Fix TrackingVH to handle const Value subclasses.
...
llvm-svn: 101300
2010-04-14 22:24:25 +00:00
Dan Gohman
849833aea3
Remove a const here. This makes this function consistent with all the
...
other getOperand wrappers, and it makes it easier to use with DebugInfo
code, which isn't currently prepared to see const MDNode *.
llvm-svn: 101299
2010-04-14 22:23:05 +00:00
Dan Gohman
0b4df0425f
Constify GetConstantStringInfo.
...
llvm-svn: 101298
2010-04-14 22:20:45 +00:00
Nicolas Geoffray
99bfbca6ec
Don't use DILocation when processing a DebugLoc.
...
llvm-svn: 101294
2010-04-14 22:06:37 +00:00
Johnny Chen
9aaaf4d5fa
For t2BFI disassembly, apply the same error checking as in r101205.
...
Change the error msg to read "Encoding error: msb < lsb".
llvm-svn: 101293
2010-04-14 22:04:45 +00:00
Dan Gohman
7a3dff329f
Move a bunch of methods from CallSite to CallSiteBase, so that they can
...
be used in ImmutableCallSite too.
llvm-svn: 101292
2010-04-14 21:47:32 +00:00
Johnny Chen
7637827064
Fixed another assert exposed by fuzzing. The utility function getRegisterEnum()
...
was asserting because the (RegClass, RegNum) combination doesn't make sense from
an encoding point of view.
Since getRegisterEnum() is used all over the place, to change the code to check
for encoding error after each call would not only bloat the code, but also make
it less readable. An Err flag is added to the ARMBasicMCBuilder where a client
can set a non-zero value to indicate some kind of error condition while building
up the MCInst. ARMBasicMCBuilder::BuildIt() checks this flag and returns false
if a non-zero value is detected.
llvm-svn: 101290
2010-04-14 21:03:13 +00:00
Jakob Stoklund Olesen
938f2ae310
Remove unneeded types from test.
...
llvm-svn: 101286
2010-04-14 20:56:09 +00:00
Evan Cheng
21b588b678
- Code clean up to reduce indentation.
...
- TryToOptimizeStoreOfMallocToGlobal should check if TargetData is available and bail out if it is not. The transformations being done requires TD.
llvm-svn: 101285
2010-04-14 20:52:55 +00:00
Dan Gohman
33c46fde07
Use FunTy instead of hard-coding Function.
...
llvm-svn: 101283
2010-04-14 20:49:44 +00:00
Bob Wilson
c05b887c84
Don't custom lower bit converts to ARM VMOVDRRD or VMOVDRR when the operand
...
does not have a legal type. The legalizer does not know how to handle those
nodes. Radar 7854640.
llvm-svn: 101282
2010-04-14 20:45:23 +00:00
Dan Gohman
7a633cd750
Oops, make these public.
...
llvm-svn: 101280
2010-04-14 20:31:28 +00:00
Dan Gohman
0ebddbe1d9
Move getType() and getCaller() into CallSiteBase so that
...
ImmutableCallSite can use them too.
llvm-svn: 101279
2010-04-14 20:28:44 +00:00
Evan Cheng
9e100384cb
Trim tests and convert to FileCheck.
...
llvm-svn: 101277
2010-04-14 20:22:17 +00:00
Dan Gohman
c87b74d913
Delete unneeeded arguments.
...
llvm-svn: 101276
2010-04-14 20:17:22 +00:00
Dan Gohman
a3918ecdf5
Delete unused arguments.
...
llvm-svn: 101275
2010-04-14 20:05:00 +00:00
Dan Gohman
7deb447781
Factor out EH landing pad code into a separate function, and constify
...
a bunch of stuff to support it.
llvm-svn: 101273
2010-04-14 19:53:31 +00:00
Dan Gohman
c2c08d19b8
Reset the debug location even if the instruction was a terminator.
...
llvm-svn: 101272
2010-04-14 19:30:02 +00:00
Dan Gohman
a0e9a7285e
Fix a missing #include.
...
llvm-svn: 101270
2010-04-14 18:57:18 +00:00
Dan Gohman
cacd4f2401
Refine #includes.
...
llvm-svn: 101269
2010-04-14 18:49:17 +00:00
Dan Gohman
d313a05a16
Split ISD::NodeType and a few related items out of SelectionDAGNodes.h
...
into a separate header to allow clients to use them without pulling in
SelectionDAG-specific declarations.
llvm-svn: 101268
2010-04-14 18:44:34 +00:00
Dan Gohman
8ebcbe949a
Pull utility routines with no SelectionDAG dependence out of
...
SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for
them to live, but it's better than SelectionDAGBuilder for now.
llvm-svn: 101267
2010-04-14 18:31:02 +00:00
Dan Gohman
f5cca35750
Fix typos in comments.
...
llvm-svn: 101266
2010-04-14 18:24:06 +00:00
Gabor Greif
fefdd42644
performance: cache the dereferenced use_iterator
...
llvm-svn: 101265
2010-04-14 18:13:29 +00:00
Dan Gohman
fea9ba18ff
Delete an obsolete comment.
...
llvm-svn: 101264
2010-04-14 17:40:25 +00:00
Dan Gohman
3215eae4a3
Delete an unused function.
...
llvm-svn: 101263
2010-04-14 17:22:02 +00:00
Dan Gohman
094fc7b09e
Clear the FunctionLoweringInfo object before doing other things that
...
don't need it.
llvm-svn: 101262
2010-04-14 17:13:16 +00:00
Dan Gohman
ad0b3ea3cc
Move this assert out of SelectionDAGISel into FunctionLoweringInfo, and
...
drop the redundant #ifndef NDEBUG.
llvm-svn: 101261
2010-04-14 17:11:23 +00:00
Dan Gohman
0f405c8d73
Add a comment.
...
llvm-svn: 101260
2010-04-14 17:09:37 +00:00
Dan Gohman
2ca8fb229c
Move the code for initialing the entry block livein set out of
...
SelectionDAGISel.
llvm-svn: 101258
2010-04-14 17:05:00 +00:00
Dan Gohman
4bfb437ec9
Reorgnaize this code to be more tidy and readable.
...
llvm-svn: 101256
2010-04-14 17:02:07 +00:00
Dan Gohman
1939b5f130
Trim #includes.
...
llvm-svn: 101255
2010-04-14 16:54:39 +00:00
Dan Gohman
2b79ee8bc8
Move the code for emitting livein copies out of SelectionDAGISel.
...
llvm-svn: 101254
2010-04-14 16:51:49 +00:00
Gabor Greif
c08e5df836
performance: cache the dereferenced use_iterator
...
llvm-svn: 101253
2010-04-14 16:48:56 +00:00
Dan Gohman
69e8e322d9
Sink landing-pad marking code out of
...
SelectionDAGISel::runOnMachineFunction into FunctionLowering.
llvm-svn: 101252
2010-04-14 16:32:56 +00:00
Dan Gohman
f57117d166
It's not necessary to recompute EB here.
...
llvm-svn: 101251
2010-04-14 16:30:40 +00:00
Gabor Greif
a49686fa3e
performance: cache the dereferenced use_iterator
...
llvm-svn: 101250
2010-04-14 16:13:56 +00:00
Dan Gohman
65de3d140d
Add a comment.
...
llvm-svn: 101248
2010-04-14 16:08:56 +00:00
Dan Gohman
4083e9afaf
Fix whitespace, comments.
...
llvm-svn: 101247
2010-04-14 15:59:02 +00:00
Dan Gohman
8a616ea9a9
Add explicit keywords.
...
llvm-svn: 101246
2010-04-14 15:50:02 +00:00
Dan Gohman
7947f03a07
Use C++, not C++-standard-library-internals-ese.
...
llvm-svn: 101245
2010-04-14 15:41:50 +00:00
Dan Gohman
f1f0c9ded8
Make SuccIterator's private parts private too.
...
llvm-svn: 101244
2010-04-14 15:38:15 +00:00
Dan Gohman
6177386b05
Make helper utility members private.
...
llvm-svn: 101243
2010-04-14 15:33:04 +00:00
Benjamin Kramer
a050255103
EDis: Don't include inttypes.h. We support compilers which don't provide it. It was unused anyways.
...
llvm-svn: 101241
2010-04-14 13:56:38 +00:00
Nick Lewycky
cc924c7483
Enable RTTI again. While this works fine for LLVM, it creates an ABI
...
incompatibility with some clients covered by the buildbots, such as llvm-gcc.
llvm-svn: 101237
2010-04-14 05:51:59 +00:00
Nick Lewycky
80ee5e299c
Don't forget cmake!
...
llvm-svn: 101234
2010-04-14 05:35:20 +00:00
Nick Lewycky
81f8f03dc9
Turn off RTTI for VMCore. Yay!
...
llvm-svn: 101233
2010-04-14 05:30:13 +00:00
Nick Lewycky
163a743b51
I don't know how, but I managed to goof the revert. Remove function that should
...
have been removed in r101231.
llvm-svn: 101232
2010-04-14 05:03:50 +00:00
Nick Lewycky
ca615eb0d6
Revert r101213.
...
llvm-svn: 101231
2010-04-14 04:51:58 +00:00
Nick Lewycky
c37b45bd2d
Remove accidentally committed cruft.
...
llvm-svn: 101230
2010-04-14 04:46:11 +00:00
Nick Lewycky
7cd1aa31ac
Fix 80 column ruler.
...
llvm-svn: 101229
2010-04-14 04:40:35 +00:00
Nick Lewycky
7c167954e2
Bugpoint no longer uses exceptions.
...
llvm-svn: 101228
2010-04-14 04:40:31 +00:00
Chris Lattner
6b55cb9cd8
implement mc asmparser support for '.', which gets the
...
current PC. rdar://7834775
We now produce an identical .o file compared to the cctools
assembler for something like this:
_f0:
L0:
jmp L1
.long . - L0
L1:
jmp A
.long . - L1
.zerofill __DATA,_bss,A,0
llvm-svn: 101227
2010-04-14 04:40:28 +00:00
Nick Lewycky
087d59cf25
Remove tab.
...
llvm-svn: 101223
2010-04-14 04:19:05 +00:00
Nick Lewycky
8408f33deb
Commit testcase for r101213.
...
llvm-svn: 101214
2010-04-14 03:46:42 +00:00
Nick Lewycky
3cdae269f0
While DAE can't modify the function signature of an externally visible function,
...
it can check whether the visible direct callers are passing in parameters to
dead arguments and replace those with undef.
This reinstates r94322 with bugs fixed.
llvm-svn: 101213
2010-04-14 03:38:11 +00:00
Dan Gohman
5f40d34958
Generalize this code to handle Instructions in addition to ConstantExprs.
...
llvm-svn: 101210
2010-04-14 02:33:23 +00:00
Dan Gohman
9162fb07be
Reorder the methods of this class to be a little more organized.
...
llvm-svn: 101206
2010-04-14 02:09:45 +00:00
Johnny Chen
48bbf4910e
Fixed another assert exposed by fuzzing. Now, when an encoding error occurs
...
involing getBFCInvMask() where lsb <= msb does not hold true, the disassembler
just returns false, instead of assert, to indicate disassembly error.
llvm-svn: 101205
2010-04-14 02:05:29 +00:00
Devang Patel
b7eadda495
Clear MachineInstr->MCSymbol maps at the end of a function.
...
llvm-svn: 101202
2010-04-14 01:18:28 +00:00
Johnny Chen
82c3cadad6
Fixed an assert() exposed by fuzzing. Now, instead of assert when an invalid
...
instruction encoding is encountered, we just return a NULL ARMBasicMCBuilder
instance and the client just returns false to indicate disassembly error.
llvm-svn: 101201
2010-04-14 01:17:37 +00:00
Daniel Dunbar
780792dc86
Fix -Asserts warnings.
...
llvm-svn: 101191
2010-04-13 23:34:11 +00:00
Devang Patel
c48b976c08
XFAIL this test for powerpc.
...
This test relies on iSel lowering dbg_declare intrinsic when CodeGen::OptLevel is None. On PPC side, CodeGen::OptLevel stays to default when -O0 is used on the command line.
llvm-svn: 101190
2010-04-13 23:23:09 +00:00
Douglas Gregor
9078f954bf
Unbreak CMake build by improving the EnhancedDisassembly makefile a
...
bit (we're not trying to build a shared library yet) and generating
the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary.
llvm-svn: 101188
2010-04-13 22:47:43 +00:00
Evan Cheng
87585d72a5
Fast path implicit_def check.
...
llvm-svn: 101183
2010-04-13 22:13:34 +00:00
Evan Cheng
6c35893aa6
Add test for post-ra machine licm.
...
llvm-svn: 101182
2010-04-13 22:10:03 +00:00
Bob Wilson
699bdf7adf
Handle a v2f64 formal parameter that is split between registers and memory
...
such that the entire second half is in memory. Radar 7855014.
llvm-svn: 101181
2010-04-13 22:03:22 +00:00
Sean Callanan
9b6772c43a
Quick fix for build errors caused by undefined
...
NULL.
llvm-svn: 101180
2010-04-13 21:36:35 +00:00
Sean Callanan
814e69b171
Fixed a nasty layering violation in the edis source
...
code. It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.
Also removed hacky #define-controlled initialization
of targets in edis. If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.
llvm-svn: 101179
2010-04-13 21:21:57 +00:00
Ted Kremenek
8af6f765f5
Add CMake support for 'edis'.
...
llvm-svn: 101177
2010-04-13 20:52:50 +00:00
Johnny Chen
44d7d183fa
Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits,
...
instead of 7, because we are only looking for even rotate amount.
llvm-svn: 101172
2010-04-13 20:35:16 +00:00
Devang Patel
12d150ea43
Do not include types without any definition in pubtypes list.
...
llvm-svn: 101171
2010-04-13 20:35:04 +00:00
Evan Cheng
cce672c172
Avoid variable shadowing.
...
llvm-svn: 101170
2010-04-13 20:25:29 +00:00
Evan Cheng
89e74792b6
Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it.
...
llvm-svn: 101167
2010-04-13 20:21:05 +00:00
Jakob Stoklund Olesen
20b71e28cc
Teach MachineSinking to handle easy critical edges.
...
Sometimes it is desirable to sink instructions along a critical edge:
x = ...
if (a && b) ...
else use(x);
The 'a && b' condition creates a critical edge to the else block, but we still
want to sink the computation of x into the block. The else block is dominated by
the parent block, so we are not pushing instructions into new code paths.
llvm-svn: 101165
2010-04-13 19:06:14 +00:00
Evan Cheng
4d89dd8353
Fix test on non-x86 hosts.
...
llvm-svn: 101163
2010-04-13 18:54:04 +00:00
Evan Cheng
4ca4bc6f95
Re-apply 101075 and fix it properly. Just reuse the debug info of the branch instruction being optimized. There is no need to --I which can deref off start of the BB.
...
llvm-svn: 101162
2010-04-13 18:50:27 +00:00
Chris Lattner
6b2b064d7a
Make the disassembler respect the assembler dialect when printing instructions,
...
patch by Marius Wachtler!
llvm-svn: 101160
2010-04-13 18:41:17 +00:00
Eric Christopher
d67f66dc0c
Temporarily revert r101075, it's causing invalid iterator assertions
...
in a nightly tester.
llvm-svn: 101158
2010-04-13 18:37:58 +00:00