oota-llvm.git
14 years agoUntabify previous commit.
Eric Christopher [Tue, 2 Feb 2010 00:06:55 +0000 (00:06 +0000)]
Untabify previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95035 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChanged to Chris Lattner's suggested approach, which
Sean Callanan [Tue, 2 Feb 2010 00:04:46 +0000 (00:04 +0000)]
Changed to Chris Lattner's suggested approach, which
merely stubs out the blocks-based disassembly functions
if the library wasn't built with blocks, which allows a
constant .exports file and also properly deals with
situations in which the compiler used to build a client
is different from the compiler used to build the library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95034 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoKill the Mach-O writer, and temporarily make filetype=obj an error.
Nate Begeman [Mon, 1 Feb 2010 23:56:58 +0000 (23:56 +0000)]
Kill the Mach-O writer, and temporarily make filetype=obj an error.
The MCStreamer based assemblers will take over for this functionality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95033 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix for builds with separate source and build
Sean Callanan [Mon, 1 Feb 2010 23:27:57 +0000 (23:27 +0000)]
Fix for builds with separate source and build
directories (like, oh, say, any multistage build)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95028 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFormatting.
Eric Christopher [Mon, 1 Feb 2010 23:25:03 +0000 (23:25 +0000)]
Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95027 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMOVi16 should also be marked as a UnaryDP instruction, i.e., it doesn't have a
Johnny Chen [Mon, 1 Feb 2010 23:06:04 +0000 (23:06 +0000)]
MOVi16 should also be marked as a UnaryDP instruction, i.e., it doesn't have a
Rn operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95025 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdated to use the proper .exports file for the
Sean Callanan [Mon, 1 Feb 2010 23:01:38 +0000 (23:01 +0000)]
Updated to use the proper .exports file for the
target platform, depending on whether the target
supports the blocks API or not

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95024 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd "dump" method to IVUsersOneStride.
Bill Wendling [Mon, 1 Feb 2010 22:51:23 +0000 (22:51 +0000)]
Add "dump" method to IVUsersOneStride.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95022 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTestcase for 94996 (PR 6157)
Dale Johannesen [Mon, 1 Feb 2010 22:46:05 +0000 (22:46 +0000)]
Testcase for 94996 (PR 6157)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95021 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix PR6196. GV callee may not be a function.
Evan Cheng [Mon, 1 Feb 2010 22:40:09 +0000 (22:40 +0000)]
Fix PR6196. GV callee may not be a function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95017 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd test case for 95013.
Evan Cheng [Mon, 1 Feb 2010 22:32:42 +0000 (22:32 +0000)]
Add test case for 95013.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95014 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImprove EXTRACT_VECTOR_ELT patch based on comments from Duncan
Mon P Wang [Mon, 1 Feb 2010 22:15:09 +0000 (22:15 +0000)]
Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95012 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRollback on including blocks functionality in .exports
Sean Callanan [Mon, 1 Feb 2010 21:57:50 +0000 (21:57 +0000)]
Rollback on including blocks functionality in .exports
because some platforms don't support blocks and then
break because the symbols aren't present

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95011 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd an option to GVN to remove all partially redundant loads. This is currently
Bob Wilson [Mon, 1 Feb 2010 21:17:14 +0000 (21:17 +0000)]
Add an option to GVN to remove all partially redundant loads.  This is currently
disabled by default.  This divides the existing load PRE code into 2 phases:
first it checks that it is safe to move the load to each of the predecessors
where it is unavailable, and then if it is safe, the code is changed to move
the load.  Radar 7571861.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95007 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDo an early exit when the result is known cheaply.
Duncan Sands [Mon, 1 Feb 2010 20:57:35 +0000 (20:57 +0000)]
Do an early exit when the result is known cheaply.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95002 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoeliminate a bunch of pointless LLVMContext arguments.
Chris Lattner [Mon, 1 Feb 2010 20:48:08 +0000 (20:48 +0000)]
eliminate a bunch of pointless LLVMContext arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95001 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix typo "of" -> "or" and change the way a line was formatted to fit
Duncan Sands [Mon, 1 Feb 2010 20:42:02 +0000 (20:42 +0000)]
Fix typo "of" -> "or" and change the way a line was formatted to fit
into 80 columns to match my artistic preferences.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95000 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR6195, a bug constant folding scalar -> vector compares.
Chris Lattner [Mon, 1 Feb 2010 20:04:40 +0000 (20:04 +0000)]
fix PR6195, a bug constant folding scalar -> vector compares.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94997 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR 6157. Testcase pending.
Dale Johannesen [Mon, 1 Feb 2010 19:54:53 +0000 (19:54 +0000)]
fix PR 6157.  Testcase pending.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94996 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agocleanups.
Chris Lattner [Mon, 1 Feb 2010 19:54:45 +0000 (19:54 +0000)]
cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94995 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR6197 - infinite recursion in ipsccp due to block addresses
Chris Lattner [Mon, 1 Feb 2010 19:35:08 +0000 (19:35 +0000)]
fix PR6197 - infinite recursion in ipsccp due to block addresses

evaluateICmpRelation wasn't handling blockaddress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94993 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result
Mon P Wang [Mon, 1 Feb 2010 19:03:18 +0000 (19:03 +0000)]
Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result
type is the same as the element type of the vector.  EXTRACT_VECTOR_ELT can
be used to extended the width of an integer type.  This fixes a bug for
Generic/vector-casts.ll on a ppc750.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94990 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdate this test for a trivial register allocation difference.
Dan Gohman [Mon, 1 Feb 2010 19:00:32 +0000 (19:00 +0000)]
Update this test for a trivial register allocation difference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94989 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoGeneralize target-independent folding rules for sizeof to handle more
Dan Gohman [Mon, 1 Feb 2010 18:27:38 +0000 (18:27 +0000)]
Generalize target-independent folding rules for sizeof to handle more
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.

Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.

Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.

And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94987 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix rdar://7590304, a miscompilation of objc apps on arm. The caller
Chris Lattner [Mon, 1 Feb 2010 18:11:34 +0000 (18:11 +0000)]
fix rdar://7590304, a miscompilation of objc apps on arm.  The caller
of objc message send was getting marked arm_apcscc, but the prototype
isn't.  This is fine at runtime because objcmsgsend is implemented in
assembly.  Only turn a mismatched caller and callee into 'unreachable'
if the callee is a definition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94986 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix rdar://7590304, an infinite loop in instcombine. In the invoke
Chris Lattner [Mon, 1 Feb 2010 18:04:58 +0000 (18:04 +0000)]
fix rdar://7590304, an infinite loop in instcombine.  In the invoke
case, instcombine can't zap the invoke for fear of changing the CFG.
However, we have to do something to prevent the next iteration of
instcombine from inserting another store -> undef before the invoke
thereby getting into infinite iteration between dead store elim and
store insertion.

Just zap the callee to null, which will prevent the next iteration
from doing anything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94985 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix pr6198 by moving the isSized() check to an outer conditional.
Bob Wilson [Mon, 1 Feb 2010 17:41:44 +0000 (17:41 +0000)]
Fix pr6198 by moving the isSized() check to an outer conditional.
The testcase from pr6198 does not crash for me -- I don't know what's up with
that -- so I'm not adding it to the tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94984 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a getNUWMul function.
Dan Gohman [Mon, 1 Feb 2010 16:38:14 +0000 (16:38 +0000)]
Add a getNUWMul function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94982 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a generalized form of ConstantExpr::getOffsetOf which works for
Dan Gohman [Mon, 1 Feb 2010 16:37:38 +0000 (16:37 +0000)]
Add a generalized form of ConstantExpr::getOffsetOf which works for
array types as well as struct types, and which accepts arbitrary
Constant indicies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94981 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMulOp is actually a Mips specific node, so do the match using Opcode. This fixes...
Bruno Cardoso Lopes [Mon, 1 Feb 2010 12:16:39 +0000 (12:16 +0000)]
MulOp is actually a Mips specific node, so do the match using Opcode. This fixes PR6192

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94977 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd an immutable interval map, prepared to be used by flat memory model
Zhongxing Xu [Mon, 1 Feb 2010 10:43:31 +0000 (10:43 +0000)]
Add an immutable interval map, prepared to be used by flat memory model
in the analyzer. WIP.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94976 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhoops, left some debugging code in that broke
Sean Callanan [Mon, 1 Feb 2010 09:02:24 +0000 (09:02 +0000)]
Whoops, left some debugging code in that broke
a buildbot.  Removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94975 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdded the enhanced disassembly library's implementation and
Sean Callanan [Mon, 1 Feb 2010 08:49:35 +0000 (08:49 +0000)]
Added the enhanced disassembly library's implementation and
fleshed out the .exports file.  I still have to fix several
details of operand parsing, but the basic functionality is
there and usable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94974 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSimplify code. We can compare TNew with T in one batch.
Zhongxing Xu [Mon, 1 Feb 2010 07:32:52 +0000 (07:32 +0000)]
Simplify code. We can compare TNew with T in one batch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94973 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUndo r94946 now all the tests are passing again.
Evan Cheng [Mon, 1 Feb 2010 02:13:39 +0000 (02:13 +0000)]
Undo r94946 now all the tests are passing again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94970 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix stack size bug while using o32 abi
Bruno Cardoso Lopes [Mon, 1 Feb 2010 02:03:24 +0000 (02:03 +0000)]
Fix stack size bug while using o32 abi

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94969 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFor MVNr and MVNs, we need to set Inst{25} = 0 so as not to confuse the decoder.
Johnny Chen [Sun, 31 Jan 2010 11:22:28 +0000 (11:22 +0000)]
For MVNr and MVNs, we need to set Inst{25} = 0 so as not to confuse the decoder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94955 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChange TAILJMP's to be varargs and transfer implicit uses over from TCRETURN's. Other...
Evan Cheng [Sun, 31 Jan 2010 07:28:44 +0000 (07:28 +0000)]
Change TAILJMP's to be varargs and transfer implicit uses over from TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94950 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a missing check from my last commit.
Evan Cheng [Sun, 31 Jan 2010 07:27:31 +0000 (07:27 +0000)]
Fix a missing check from my last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94949 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAvoid recursive sibcall's.
Evan Cheng [Sun, 31 Jan 2010 06:44:49 +0000 (06:44 +0000)]
Avoid recursive sibcall's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94946 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove a completed item, add a couple new ones.
Eli Friedman [Sun, 31 Jan 2010 04:55:32 +0000 (04:55 +0000)]
Remove a completed item, add a couple new ones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94945 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove test which is no longer relevant.
Eli Friedman [Sun, 31 Jan 2010 04:40:45 +0000 (04:40 +0000)]
Remove test which is no longer relevant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94944 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSimplify/generalize the xor+add->sign-extend instcombine.
Eli Friedman [Sun, 31 Jan 2010 04:29:12 +0000 (04:29 +0000)]
Simplify/generalize the xor+add->sign-extend instcombine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94943 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a single
Eli Friedman [Sun, 31 Jan 2010 02:30:23 +0000 (02:30 +0000)]
Add a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a single
use and X is free to negate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94941 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMoved InstallLexer() from the X86-specific AsmLexer
Sean Callanan [Sun, 31 Jan 2010 02:28:18 +0000 (02:28 +0000)]
Moved InstallLexer() from the X86-specific AsmLexer
to the TargetAsmLexer class so that clients can
actually use the TargetAsmLexer they get from a
Target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94940 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDo not mark no-return calls tail calls. It'll screw up special calls like longjmp...
Evan Cheng [Sun, 31 Jan 2010 00:59:31 +0000 (00:59 +0000)]
Do not mark no-return calls tail calls. It'll screw up special calls like longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94937 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix PR6144. Reload GP before the emission of CALLSEQ_END to guarantee the right reloa...
Bruno Cardoso Lopes [Sat, 30 Jan 2010 18:32:07 +0000 (18:32 +0000)]
Fix PR6144. Reload GP before the emission of CALLSEQ_END to guarantee the right reload order

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94915 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix mov.d out register by using the FFR register class directly
Bruno Cardoso Lopes [Sat, 30 Jan 2010 18:29:19 +0000 (18:29 +0000)]
Fix mov.d out register by using the FFR register class directly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94914 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a gross typo: ARMv6+ may or may not support unaligned memory operations.
Anton Korobeynikov [Sat, 30 Jan 2010 14:08:12 +0000 (14:08 +0000)]
Fix a gross typo: ARMv6+ may or may not support unaligned memory operations.
Even if they are suported by the core, they can be disabled
(this is just a configuration bit inside some register).

Allow unaligned memops on darwin and conservatively disallow them otherwise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94889 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCheck alignment of loads when deciding whether it is safe to execute them
Bob Wilson [Sat, 30 Jan 2010 04:42:39 +0000 (04:42 +0000)]
Check alignment of loads when deciding whether it is safe to execute them
unconditionally.  Besides checking the offset, also check that the underlying
object is aligned as much as the load itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94875 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAllow more tailcall optimization: calls with inputs that are all passed in registers.
Evan Cheng [Sat, 30 Jan 2010 01:22:00 +0000 (01:22 +0000)]
Allow more tailcall optimization: calls with inputs that are all passed in registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94873 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't forget to transfer target flag when inserting a tailcall instruction.
Evan Cheng [Sat, 30 Jan 2010 01:16:15 +0000 (01:16 +0000)]
Don't forget to transfer target flag when inserting a tailcall instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94872 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoEmit declaration DIE for the class static variables.
Devang Patel [Sat, 30 Jan 2010 01:08:30 +0000 (01:08 +0000)]
Emit declaration DIE for the class static variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94870 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMC/X86 AsmParser: Handle absolute memory operands correctly. We were doing
Daniel Dunbar [Sat, 30 Jan 2010 01:02:48 +0000 (01:02 +0000)]
MC/X86 AsmParser: Handle absolute memory operands correctly. We were doing
something totally broken and parsing them as immediates, but the .td file also
had the wrong match class so things sortof worked. Except, that is, that we
would parse
  movl $0, %eax
as
  movl 0, %eax
Feel free to guess how well that worked.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94869 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAsmMatcher: Create operand classes before use, apparently records aren't visited
Daniel Dunbar [Sat, 30 Jan 2010 01:02:37 +0000 (01:02 +0000)]
AsmMatcher: Create operand classes before use, apparently records aren't visited
in the order they were declared.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94868 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a case where debug_value could affect codegen.
Dale Johannesen [Sat, 30 Jan 2010 00:57:47 +0000 (00:57 +0000)]
Fix a case where debug_value could affect codegen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94866 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse more specific types to avoid casts. No functionality change.
Bob Wilson [Sat, 30 Jan 2010 00:41:10 +0000 (00:41 +0000)]
Use more specific types to avoid casts.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94863 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove ARM-specific calling convention from this test. Target data is
Bob Wilson [Sat, 30 Jan 2010 00:40:23 +0000 (00:40 +0000)]
Remove ARM-specific calling convention from this test.  Target data is
needed for this test, but otherwise, there's nothing ARM-specific about
it and no need to specify the calling convention.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94862 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoX86.td: Refactor to bring operands that use print_pcrel_imm together.
Daniel Dunbar [Sat, 30 Jan 2010 00:24:12 +0000 (00:24 +0000)]
X86.td: Refactor to bring operands that use print_pcrel_imm together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94861 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFileCheck: When looking for "possible matches", only compare against the prefix
Daniel Dunbar [Sat, 30 Jan 2010 00:24:06 +0000 (00:24 +0000)]
FileCheck: When looking for "possible matches", only compare against the prefix
line. Turns out edit_distance can be slow if the string we are scanning for
happens to be quite large.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94860 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAsmMatcher/X86: Separate out sublass for memory operands that have no segment
Daniel Dunbar [Sat, 30 Jan 2010 00:24:00 +0000 (00:24 +0000)]
AsmMatcher/X86: Separate out sublass for memory operands that have no segment
register, and use to cleanup a FIXME in X86AsmParser.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94859 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoKeep iterating over all uses when meeting a phi node in AllUsesOfValueWillTrapIfNull().
Jakob Stoklund Olesen [Fri, 29 Jan 2010 23:54:14 +0000 (23:54 +0000)]
Keep iterating over all uses when meeting a phi node in AllUsesOfValueWillTrapIfNull().

This bug was exposed by my inliner cost changes in r94615, and caused failures
of lencod on most architectures when building with LTO.

This patch fixes lencod and 464.h264ref on x86-64 (and likely others).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94858 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMC/X86: Add a nice X86 assembler matcher test case from Kevin Enderby.
Daniel Dunbar [Fri, 29 Jan 2010 23:32:40 +0000 (23:32 +0000)]
MC/X86: Add a nice X86 assembler matcher test case from Kevin Enderby.
 - This test case is auto generated, and has been verified to round-trip
   correctly through llvm-mc by checking the assembled .o file before and after
   piping through llvm-mc. It will be extended over time as the matcher grows
   support for more instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94857 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoModified encoding bits specification for VFP instructions. In particular, the D
Johnny Chen [Fri, 29 Jan 2010 23:21:10 +0000 (23:21 +0000)]
Modified encoding bits specification for VFP instructions.  In particular, the D
bit (Inst{22}) and the M bit (Inst{5}) should be left unspecified.  For binary
format instructions, Inst{6} and Inst{4} need to specified for proper decodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94855 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPrint a comment next to "materializable" global values, to distinguish
Dan Gohman [Fri, 29 Jan 2010 23:12:36 +0000 (23:12 +0000)]
Print a comment next to "materializable" global values, to distinguish
them from values that are not actually defined in the module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94854 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPPC is not ready for sibcall optimization.
Evan Cheng [Fri, 29 Jan 2010 23:05:56 +0000 (23:05 +0000)]
PPC is not ready for sibcall optimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94853 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPreserve load alignment in instcombine transformations. I've been unable to
Bob Wilson [Fri, 29 Jan 2010 22:39:21 +0000 (22:39 +0000)]
Preserve load alignment in instcombine transformations.  I've been unable to
create a testcase where this matters.  The select+load transformation only
occurs when isSafeToLoadUnconditionally is true, and in those situations,
instcombine also changes the underlying objects to be aligned.  This seems
like a good idea regardless, and I've verified that it doesn't pessimize
the subsequent realignment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94850 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMinor code cleanup.
Dan Gohman [Fri, 29 Jan 2010 21:57:46 +0000 (21:57 +0000)]
Minor code cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94848 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSkip whitespace when looking for a potential intended match.
Dan Gohman [Fri, 29 Jan 2010 21:55:16 +0000 (21:55 +0000)]
Skip whitespace when looking for a potential intended match.
Before:

<stdin>:94:1: note: possible intended match here
 movsd 4096(%rsi), %xmm0
^

After:
<stdin>:94:2: note: possible intended match here
 movsd 4096(%rsi), %xmm0
 ^

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94847 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix the position of the caret in the FileCheck error message.
Dan Gohman [Fri, 29 Jan 2010 21:53:18 +0000 (21:53 +0000)]
Fix the position of the caret in the FileCheck error message.
Before:

test/CodeGen/X86/lsr-reuse.ll:52:34: error: expected string not found in input
; CHECK: movsd -2048(%rsi), %xmm0
                                 ^

After:

test/CodeGen/X86/lsr-reuse.ll:52:10: error: expected string not found in input
; CHECK: movsd -2048(%rsi), %xmm0
         ^

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94846 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake sure the size is doubled (not 4x).
Junjie Gu [Fri, 29 Jan 2010 21:34:26 +0000 (21:34 +0000)]
Make sure the size is doubled (not 4x).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94845 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemoved symbols from .exports that are not yet in
Sean Callanan [Fri, 29 Jan 2010 21:21:44 +0000 (21:21 +0000)]
Removed symbols from .exports that are not yet in
the library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94844 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd assertion to humor the paranoid.
Dale Johannesen [Fri, 29 Jan 2010 21:21:28 +0000 (21:21 +0000)]
Add assertion to humor the paranoid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94843 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWe were not writing bitcode for function-local metadata whose operands have been...
Victor Hernandez [Fri, 29 Jan 2010 21:19:19 +0000 (21:19 +0000)]
We were not writing bitcode for function-local metadata whose operands have been erased (making it not have any more function-local operands)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94842 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert my last couple of patches. They appear to have broken bison.
Eric Christopher [Fri, 29 Jan 2010 21:16:24 +0000 (21:16 +0000)]
Revert my last couple of patches. They appear to have broken bison.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94841 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRename two IRReader.h functions to indicate that they return a Module
Jeffrey Yasskin [Fri, 29 Jan 2010 21:11:04 +0000 (21:11 +0000)]
Rename two IRReader.h functions to indicate that they return a Module
that loads its contents lazily from bitcode.  I think these are the
only remaining mis-named functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94840 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse uint64_t instead of unsigned for offsets and sizes.
Bob Wilson [Fri, 29 Jan 2010 20:34:28 +0000 (20:34 +0000)]
Use uint64_t instead of unsigned for offsets and sizes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94835 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd svn:ignore properties.
Dan Gohman [Fri, 29 Jan 2010 19:43:48 +0000 (19:43 +0000)]
Add svn:ignore properties.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94833 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImprove isSafeToLoadUnconditionally to recognize that GEPs with constant
Bob Wilson [Fri, 29 Jan 2010 19:19:08 +0000 (19:19 +0000)]
Improve isSafeToLoadUnconditionally to recognize that GEPs with constant
indices are safe if the result is known to be within the bounds of the
underlying object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94829 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoBelatedly document r85295 and r85330.
Jeffrey Yasskin [Fri, 29 Jan 2010 19:10:38 +0000 (19:10 +0000)]
Belatedly document r85295 and r85330.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94825 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd size and location info in DW_TAG_class_type descriptor.
Devang Patel [Fri, 29 Jan 2010 18:34:58 +0000 (18:34 +0000)]
Add size and location info in DW_TAG_class_type descriptor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94822 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoBefore inserting llvm.dbg.declare intrinsic at the end of a basic block, check...
Devang Patel [Fri, 29 Jan 2010 18:30:57 +0000 (18:30 +0000)]
Before inserting   llvm.dbg.declare intrinsic at the end of a basic block, check whether the basic block has a terminator or not.
This API is used by clang and the test case is test/CodeGen/debug-info-crash.c in clang module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94820 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix MSVC build.
Benjamin Kramer [Fri, 29 Jan 2010 15:19:06 +0000 (15:19 +0000)]
Fix MSVC build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94809 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoConvert some users of ftostr to raw_ostream.
Benjamin Kramer [Fri, 29 Jan 2010 14:42:22 +0000 (14:42 +0000)]
Convert some users of ftostr to raw_ostream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94808 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse llvm::format instead of ftostr (which just calls sprintf).
Benjamin Kramer [Fri, 29 Jan 2010 14:40:33 +0000 (14:40 +0000)]
Use llvm::format instead of ftostr (which just calls sprintf).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94807 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChange the SREM case to match the logic in the IR version ComputeMaskedBits.
Duncan Sands [Fri, 29 Jan 2010 09:45:26 +0000 (09:45 +0000)]
Change the SREM case to match the logic in the IR version ComputeMaskedBits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94805 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCatch more trivial tail call opportunities: no inputs and output types match.
Evan Cheng [Fri, 29 Jan 2010 06:45:59 +0000 (06:45 +0000)]
Catch more trivial tail call opportunities: no inputs and output types match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94804 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoHaving RHSKnownZero and RHSKnownOne be alternative names for KnownZero and KnownOne
Duncan Sands [Fri, 29 Jan 2010 06:18:46 +0000 (06:18 +0000)]
Having RHSKnownZero and RHSKnownOne be alternative names for KnownZero and KnownOne
(via APInt &RHSKnownZero = KnownZero, etc) seems dangerous and confusing to me: it
is easy not to notice this, and then wonder why KnownZero/RHSKnownZero changed
underneath you when you modified RHSKnownZero/KnownZero etc.  So get rid of this.
No intended functionality change (tested with "make check" + llvm-gcc bootstrap).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94802 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIt looks like the changes to the SRem logic of SimplifyDemandedUseBits
Duncan Sands [Fri, 29 Jan 2010 06:18:37 +0000 (06:18 +0000)]
It looks like the changes to the SRem logic of SimplifyDemandedUseBits
(fix for PR6165) are needed here too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94801 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFileCheck: Switch "possible match" calculation to use StringRef::edit_distance.
Daniel Dunbar [Fri, 29 Jan 2010 03:22:19 +0000 (03:22 +0000)]
FileCheck: Switch "possible match" calculation to use StringRef::edit_distance.
 - Thanks Doug, who is obviously less lazy than me!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94795 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake strcpy_chk lower to strcpy if we have a safe size.
Eric Christopher [Fri, 29 Jan 2010 01:37:11 +0000 (01:37 +0000)]
Make strcpy_chk lower to strcpy if we have a safe size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94783 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoQuick fix to make the header file for the enhanced
Sean Callanan [Fri, 29 Jan 2010 01:34:29 +0000 (01:34 +0000)]
Quick fix to make the header file for the enhanced
disassembly information have a better comment (and
better guard macros).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94781 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdded a bare-bones Makefile to build the enhanced disassembly
Sean Callanan [Fri, 29 Jan 2010 01:30:01 +0000 (01:30 +0000)]
Added a bare-bones Makefile to build the enhanced disassembly
library as a static and a shared library.  Added dependencies
so the target-specific enhanced disassembly info tables are
built before the library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94780 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRecognize 'add_executable' when analyzing CMake files.
Ted Kremenek [Fri, 29 Jan 2010 01:10:55 +0000 (01:10 +0000)]
Recognize 'add_executable' when analyzing CMake files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94777 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdate CMake build.
Ted Kremenek [Fri, 29 Jan 2010 01:10:25 +0000 (01:10 +0000)]
Update CMake build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94776 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd constant support to object size handling and remove default
Eric Christopher [Fri, 29 Jan 2010 01:09:57 +0000 (01:09 +0000)]
Add constant support to object size handling and remove default
lowering. We'll either figure it out, or not and be lowered by
SelectionDAGBuild.

Add test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94775 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoGeneric reformatting and comment fixing. No functionality change.
Bill Wendling [Fri, 29 Jan 2010 00:52:43 +0000 (00:52 +0000)]
Generic reformatting and comment fixing. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94771 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd newline to debugging output, and fix some grammar-os in comment.
Bill Wendling [Fri, 29 Jan 2010 00:27:39 +0000 (00:27 +0000)]
Add newline to debugging output, and fix some grammar-os in comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94765 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdded a custom TableGen backend to support the
Sean Callanan [Fri, 29 Jan 2010 00:21:04 +0000 (00:21 +0000)]
Added a custom TableGen backend to support the
enhanced disassembler, and the necessary makefile
rules to build the table for X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94764 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomem2reg erases the dbg.declare intrinsics that it converts to dbg.val intrinsics
Victor Hernandez [Fri, 29 Jan 2010 00:01:35 +0000 (00:01 +0000)]
mem2reg erases the dbg.declare intrinsics that it converts to dbg.val intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94763 91177308-0d34-0410-b5e6-96231b3b80d8