oota-llvm.git
14 years agoForgot to also check in this file for vcvt (floating-point <-> fixed-point, VFP).
Johnny Chen [Thu, 11 Feb 2010 18:47:03 +0000 (18:47 +0000)]
Forgot to also check in this file for vcvt (floating-point <-> fixed-point, VFP).
Sorry!

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

14 years agoAllow for more than one DBG_VALUE targeting the
Dale Johannesen [Thu, 11 Feb 2010 18:23:23 +0000 (18:23 +0000)]
Allow for more than one DBG_VALUE targeting the
same dead instruction.

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

14 years agoDon't allow DBG_VALUE to affect codegen.
Dale Johannesen [Thu, 11 Feb 2010 18:22:31 +0000 (18:22 +0000)]
Don't allow DBG_VALUE to affect codegen.

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

14 years agoAdded VCVT (between floating-point and fixed-point, VFP) for disassembly.
Johnny Chen [Thu, 11 Feb 2010 18:17:16 +0000 (18:17 +0000)]
Added VCVT (between floating-point and fixed-point, VFP) for disassembly.
A8.6.297

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

14 years agoAdded BKPT/tBKPT (breakpoint) to the instruction table for disassembly purpose.
Johnny Chen [Thu, 11 Feb 2010 18:12:29 +0000 (18:12 +0000)]
Added BKPT/tBKPT (breakpoint) to the instruction table for disassembly purpose.

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

14 years agoUse array_pod_sort instead of std::sort for improved code size.
Jakob Stoklund Olesen [Thu, 11 Feb 2010 18:06:56 +0000 (18:06 +0000)]
Use array_pod_sort instead of std::sort for improved code size.

Use SmallVector instead of std::vector for better speed when indirectbr has
few successors.

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

14 years agoMake sure that ConstantExpr offsets also aren't off of extern
Eric Christopher [Thu, 11 Feb 2010 17:44:04 +0000 (17:44 +0000)]
Make sure that ConstantExpr offsets also aren't off of extern
symbols.

Thanks to Duncan Sands for the testcase!

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

14 years agoAdd pseudo instruction TRAP for disassembly, which is encoded according to A5-21
Johnny Chen [Thu, 11 Feb 2010 17:14:31 +0000 (17:14 +0000)]
Add pseudo instruction TRAP for disassembly, which is encoded according to A5-21
as the "Permanently UNDEFINED" instruction.

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

14 years agoUse .empty() instead of .size().
Bill Wendling [Thu, 11 Feb 2010 10:37:57 +0000 (10:37 +0000)]
Use .empty() instead of .size().

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

14 years agodont' call getX86RegNum on X86::RIP, it doesn't like that. This
Chris Lattner [Thu, 11 Feb 2010 08:45:56 +0000 (08:45 +0000)]
dont' call getX86RegNum on X86::RIP, it doesn't like that.  This
fixes the remaining x86-64 jit failures afaik.

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

14 years agofix a really nasty bug I introduced in r95693: r12 (and r12d,
Chris Lattner [Thu, 11 Feb 2010 08:41:21 +0000 (08:41 +0000)]
fix a really nasty bug I introduced in r95693: r12 (and r12d,
r12b, etc) also encodes to a R/M value of 4, which is just
as illegal as ESP/RSP for the non-sib version an address.

This fixes x86-64 jit miscompilations of a bunch of programs.

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

14 years agoFix (harmless) memory leak found by memcheck.
Jeffrey Yasskin [Thu, 11 Feb 2010 07:16:13 +0000 (07:16 +0000)]
Fix (harmless) memory leak found by memcheck.

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

14 years agoAdd and commonize encoder support for all immediates.
Chris Lattner [Thu, 11 Feb 2010 07:06:31 +0000 (07:06 +0000)]
Add and commonize encoder support for all immediates.
Stub out some dummy fixups to make things work.

We can now emit fixups like this:
subl $20, %esp               ## encoding: [0x83,0xec,A]
                                        ##   fixup A - offset: 2, value: 20, kind: fixup_1byte_imm

Emitting $20 as a single-byte fixup to be later resolved
by the assembler is ridiculous of course (vs just emitting
the byte) but this is a failure of the matcher, which
should be producing an imm of 20, not an MCExpr of 20.

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

14 years agogeneralize EmitDisplacementField to work with any size
Chris Lattner [Thu, 11 Feb 2010 06:54:23 +0000 (06:54 +0000)]
generalize EmitDisplacementField to work with any size
and rename it to EmitImmediate.

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

14 years agoeliminate the dead IsPCRel argument.
Chris Lattner [Thu, 11 Feb 2010 06:51:36 +0000 (06:51 +0000)]
eliminate the dead IsPCRel argument.

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

14 years agoeliminate the dead "PCAdj" logic.
Chris Lattner [Thu, 11 Feb 2010 06:49:52 +0000 (06:49 +0000)]
eliminate the dead "PCAdj" logic.

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

14 years agoFix some of the memcheck errors found in the JIT unittests.
Jeffrey Yasskin [Thu, 11 Feb 2010 06:41:30 +0000 (06:41 +0000)]
Fix some of the memcheck errors found in the JIT unittests.

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

14 years agoRename ValueRequiresCast to ShouldOptimizeCast, to better reflect
Chris Lattner [Thu, 11 Feb 2010 06:26:33 +0000 (06:26 +0000)]
Rename ValueRequiresCast to ShouldOptimizeCast, to better reflect
what it does.  Enhance it to return false to optimizing vector
sign extensions from vector comparisions, which is the idiom used
to get a splatted vector for a vector comparison.

Doing this breaks vector-casts.ll, add some compensating
transformations to handle the important case they cover without
depending on this canonicalization.

This fixes rdar://7434900 a serious pessimization of vector compares.

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

14 years agoconvert to filecheck.
Chris Lattner [Thu, 11 Feb 2010 06:24:37 +0000 (06:24 +0000)]
convert to filecheck.

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

14 years agoMake DSE only scan blocks that are reachable from the entry
Chris Lattner [Thu, 11 Feb 2010 05:11:54 +0000 (05:11 +0000)]
Make DSE only scan blocks that are reachable from the entry
block.  Other blocks may have pointer cycles that will crash
basicaa and other alias analyses.  In any case, there is no
point wasting cycles optimizing dead blocks.  This fixes
rdar://7635088

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

14 years agoa testcase that doesn't crash GVN but could someday.
Chris Lattner [Thu, 11 Feb 2010 05:08:05 +0000 (05:08 +0000)]
a testcase that doesn't crash GVN but could someday.

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

14 years agoMake jump threading honor x|undef -> true and x&undef -> false,
Chris Lattner [Thu, 11 Feb 2010 04:40:44 +0000 (04:40 +0000)]
Make jump threading honor x|undef -> true and x&undef -> false,
instead of considering x|undef -> x, which may not be true.

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

14 years agoAdd ConstantExpr handling to Intrinsic::objectsize lowering.
Eric Christopher [Thu, 11 Feb 2010 01:48:54 +0000 (01:48 +0000)]
Add ConstantExpr handling to Intrinsic::objectsize lowering.

Update testcase accordingly now that we can optimize another
section.

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

14 years agotest case for r95842.
Devang Patel [Thu, 11 Feb 2010 01:31:01 +0000 (01:31 +0000)]
test case for r95842.

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

14 years agoFix to get it to compile.
Bill Wendling [Thu, 11 Feb 2010 01:15:27 +0000 (01:15 +0000)]
Fix to get it to compile.

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

14 years agoDon't print out a default newline when emitting the section offset. There are
Bill Wendling [Thu, 11 Feb 2010 01:13:02 +0000 (01:13 +0000)]
Don't print out a default newline when emitting the section offset. There are
almost always comments afterwards that need printing.

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

14 years agoMake it possible to create multiple JIT instances at the same time, by removing
Jeffrey Yasskin [Thu, 11 Feb 2010 01:07:39 +0000 (01:07 +0000)]
Make it possible to create multiple JIT instances at the same time, by removing
the global TheJIT and TheJITResolver variables.  Lazy compilation is supported
by a global map from a stub address to the JITResolver that knows how to
compile it.

Patch by Olivier Meurant!

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

14 years agoReuse operand location when updating PHI instructions.
Jakob Stoklund Olesen [Thu, 11 Feb 2010 00:34:33 +0000 (00:34 +0000)]
Reuse operand location when updating PHI instructions.

Calling RemoveOperand is very expensive on huge PHI instructions. This makes
early tail duplication run twice as fast on the Firefox JavaScript
interpreter.

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

14 years agoRemove duplicate successors from indirectbr instructions before building the machine...
Jakob Stoklund Olesen [Thu, 11 Feb 2010 00:34:18 +0000 (00:34 +0000)]
Remove duplicate successors from indirectbr instructions before building the machine CFG.

This makes early tail duplication run 60 times faster when compiling the Firefox
JavaScript interpreter, see PR6186.

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

14 years agoIgnore dbg info intrinsics.
Devang Patel [Thu, 11 Feb 2010 00:20:49 +0000 (00:20 +0000)]
Ignore dbg info intrinsics.

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

14 years agoRemove the few # TAILCALL comments that snuck in. As they may fail on linux.
Kevin Enderby [Thu, 11 Feb 2010 00:18:12 +0000 (00:18 +0000)]
Remove the few # TAILCALL comments that snuck in.  As they may fail on linux.

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

14 years agoUpdate the X86 assembler matcher test case now that a few more things match
Kevin Enderby [Thu, 11 Feb 2010 00:13:43 +0000 (00:13 +0000)]
Update the X86 assembler matcher test case now that a few more things match
with some of the recent changes that have gone into llvm-mc.

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

14 years agoAdd support to llvm-extract for extracting multiple functions and/or
Dan Gohman [Wed, 10 Feb 2010 23:58:53 +0000 (23:58 +0000)]
Add support to llvm-extract for extracting multiple functions and/or
multiple global variables at a time.

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

14 years agoThe previous fix of widening divides that trap was too fragile as it depends on custom
Mon P Wang [Wed, 10 Feb 2010 23:37:45 +0000 (23:37 +0000)]
The previous fix of widening divides that trap was too fragile as it depends on custom
lowering and requires that certain types exist in ValueTypes.h.  Modified widening to
check if an op can trap and if so, the widening algorithm will apply only the op on
the defined elements.  It is safer to do this in widening because the optimizer can't
guarantee removing unused ops in some cases.

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

14 years agoIgnore debug info one more place during coalescing.
Dale Johannesen [Wed, 10 Feb 2010 23:04:09 +0000 (23:04 +0000)]
Ignore debug info one more place during coalescing.

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

14 years agoAllow isDebug inquiry on any MO.
Dale Johannesen [Wed, 10 Feb 2010 23:03:20 +0000 (23:03 +0000)]
Allow isDebug inquiry on any MO.

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

14 years agoDelete dead PHI machine instructions. These can be created due to type
Bob Wilson [Wed, 10 Feb 2010 22:58:57 +0000 (22:58 +0000)]
Delete dead PHI machine instructions.  These can be created due to type
legalization even when the IR-level optimizer has removed dead phis, such
as when the high half of an i64 value is unused on a 32-bit target.
I had to adjust a few test cases that had dead phis.
This is a partial fix for Radar 7627077.

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

14 years agoSkip debug info in a couple of places.
Dale Johannesen [Wed, 10 Feb 2010 21:47:48 +0000 (21:47 +0000)]
Skip debug info in a couple of places.

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

14 years agoUse an index instead of pointers into the vector. If the vector resizes, then
Bill Wendling [Wed, 10 Feb 2010 21:41:57 +0000 (21:41 +0000)]
Use an index instead of pointers into the vector. If the vector resizes, then
the pointer values could be invalid.

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

14 years agoWhen I rewrote this loop per Chris' preference I
Dale Johannesen [Wed, 10 Feb 2010 21:41:41 +0000 (21:41 +0000)]
When I rewrote this loop per Chris' preference I
changed its behavior.  Oops.

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

14 years agoadd a virtual dtor to MCTargetExpr, hopefully silencing some warnings.
Chris Lattner [Wed, 10 Feb 2010 21:37:31 +0000 (21:37 +0000)]
add a virtual dtor to MCTargetExpr, hopefully silencing some warnings.

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

14 years agoA few missed optimizations; the last one could have a significant impact on
Eli Friedman [Wed, 10 Feb 2010 21:26:04 +0000 (21:26 +0000)]
A few missed optimizations; the last one could have a significant impact on
code with lots of bitfields.

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

14 years agowork around a gcc bug with -Wuninitialized.
Chris Lattner [Wed, 10 Feb 2010 21:22:51 +0000 (21:22 +0000)]
work around a gcc bug with -Wuninitialized.

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

14 years agoStrip new llvm.dbg.value intrinsic.
Devang Patel [Wed, 10 Feb 2010 21:19:56 +0000 (21:19 +0000)]
Strip new llvm.dbg.value intrinsic.

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

14 years agoMC/X86 AsmMatcher: Fix a use after free spotted by d0k, and de-XFAIL
Daniel Dunbar [Wed, 10 Feb 2010 21:19:28 +0000 (21:19 +0000)]
MC/X86 AsmMatcher: Fix a use after free spotted by d0k, and de-XFAIL
x86_32-encoding.s in on expectation of it passing.

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

14 years agoXFAIL this on linux until I figure out what is happening.
Daniel Dunbar [Wed, 10 Feb 2010 21:01:04 +0000 (21:01 +0000)]
XFAIL this on linux until I figure out what is happening.

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

14 years agolit: Ignore dot files when scanning for tests (e.g., editor temprary files,
Daniel Dunbar [Wed, 10 Feb 2010 21:00:55 +0000 (21:00 +0000)]
lit: Ignore dot files when scanning for tests (e.g., editor temprary files,
etc.)

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

14 years agoMC/AsmMatcher: Tweak conversion function name.
Daniel Dunbar [Wed, 10 Feb 2010 21:00:47 +0000 (21:00 +0000)]
MC/AsmMatcher: Tweak conversion function name.

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

14 years agoMinor whitespace cleanups.
Dan Gohman [Wed, 10 Feb 2010 20:42:57 +0000 (20:42 +0000)]
Minor whitespace cleanups.

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

14 years agoUse an AssemblyAnnotatorWriter to clean up IVUsers' debug output.
Dan Gohman [Wed, 10 Feb 2010 20:42:37 +0000 (20:42 +0000)]
Use an AssemblyAnnotatorWriter to clean up IVUsers' debug output.
The "uses=" comments are just clutter in this context.

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

14 years agoAdd a hook to AssemblyAnnotationWriter to allow custom info comments
Dan Gohman [Wed, 10 Feb 2010 20:41:46 +0000 (20:41 +0000)]
Add a hook to AssemblyAnnotationWriter to allow custom info comments
to be printed, in place of the familiar "uses=" comments.

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

14 years agoUse doxygen comment syntax.
Dan Gohman [Wed, 10 Feb 2010 20:23:33 +0000 (20:23 +0000)]
Use doxygen comment syntax.

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

14 years agoFix several comments which had previously been "the the" where a
Dan Gohman [Wed, 10 Feb 2010 20:04:19 +0000 (20:04 +0000)]
Fix several comments which had previously been "the the" where a
different word was intended.

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

14 years agoReplace this file containing 4 tests of x86 32-bit encodings with a file
Kevin Enderby [Wed, 10 Feb 2010 19:13:56 +0000 (19:13 +0000)]
Replace this file containing 4 tests of x86 32-bit encodings with a file
containing the subset of the full auto generated test case that currently
encodes correctly.  Again it is useful as we bring up the the new encoder
to make sure currently working stuff stays working.

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

14 years agoAdded NOP, DBG, SVC to the instruction table for disassembly purpose.
Johnny Chen [Wed, 10 Feb 2010 18:02:25 +0000 (18:02 +0000)]
Added NOP, DBG, SVC to the instruction table for disassembly purpose.

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

14 years agoFix "the the" and similar typos.
Dan Gohman [Wed, 10 Feb 2010 16:03:48 +0000 (16:03 +0000)]
Fix "the the" and similar typos.

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

14 years agoMinor code simplification.
Dan Gohman [Wed, 10 Feb 2010 15:54:22 +0000 (15:54 +0000)]
Minor code simplification.

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

14 years agoSilence GCC warnings.
Benjamin Kramer [Wed, 10 Feb 2010 13:34:02 +0000 (13:34 +0000)]
Silence GCC warnings.

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

14 years agoMC/AsmMatcher: Add support for creating tied operands when constructing MCInsts.
Daniel Dunbar [Wed, 10 Feb 2010 08:15:48 +0000 (08:15 +0000)]
MC/AsmMatcher: Add support for creating tied operands when constructing MCInsts.
 - Pretty messy, but we need to rework how we handle tied operands in MCInst
   anyway.

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

14 years agoemit some simple (and probably incorrect) fixups for symbolic
Chris Lattner [Wed, 10 Feb 2010 06:52:12 +0000 (06:52 +0000)]
emit some simple (and probably incorrect) fixups for symbolic
displacement values.

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

14 years agokeep track of what the current byte being emitted is
Chris Lattner [Wed, 10 Feb 2010 06:41:02 +0000 (06:41 +0000)]
keep track of what the current byte being emitted is
throughout the X86 encoder.

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

14 years agosimplify displacement handling, emit displacements by-operand
Chris Lattner [Wed, 10 Feb 2010 06:30:00 +0000 (06:30 +0000)]
simplify displacement handling, emit displacements by-operand
even for the immediate case.  No functionality change.

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

14 years agoCanonicalize sizeof and alignof on pointer types to a canonical
Dan Gohman [Wed, 10 Feb 2010 06:13:07 +0000 (06:13 +0000)]
Canonicalize sizeof and alignof on pointer types to a canonical
pointer type.

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

14 years agoImplement operators |=, &=, and ^= for SmallBitVector, and remove the
Dan Gohman [Wed, 10 Feb 2010 05:54:04 +0000 (05:54 +0000)]
Implement operators |=, &=, and ^= for SmallBitVector, and remove the
restriction in BitVector for |= and ^= that the operand must be the
same length.

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

14 years agoMC: Switch MCFixup to just hold an MCExpr pointer instead of index into the
Daniel Dunbar [Wed, 10 Feb 2010 04:47:08 +0000 (04:47 +0000)]
MC: Switch MCFixup to just hold an MCExpr pointer instead of index into the
MCInst it came from.

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

14 years agoFix a signed comparison warning.
Daniel Dunbar [Wed, 10 Feb 2010 04:46:51 +0000 (04:46 +0000)]
Fix a signed comparison warning.

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

14 years agoRemove stray DOS newline.
Daniel Dunbar [Wed, 10 Feb 2010 04:10:10 +0000 (04:10 +0000)]
Remove stray DOS newline.

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

14 years agoAdd a ReleaseNotes FIXME.
Daniel Dunbar [Wed, 10 Feb 2010 04:09:52 +0000 (04:09 +0000)]
Add a ReleaseNotes FIXME.

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

14 years agoPrevented build on WINDOWS using default make system. Stopped WINDOWS build
Garrison Venn [Wed, 10 Feb 2010 03:38:29 +0000 (03:38 +0000)]
Prevented build on WINDOWS using default make system. Stopped WINDOWS build
at eh llvm/examples level using if check on LLVM_ON_UNIX.

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

14 years agoUpdated the enhanced disassembly library's TableGen
Sean Callanan [Wed, 10 Feb 2010 03:23:23 +0000 (03:23 +0000)]
Updated the enhanced disassembly library's TableGen
backend to not use exceptions at all except in cases
of actual error.

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

14 years agoPrevented ExceptionDemo example being built on WINDOWS via if( NOT WIN32 )
Garrison Venn [Wed, 10 Feb 2010 02:50:08 +0000 (02:50 +0000)]
Prevented ExceptionDemo example being built on WINDOWS via if( NOT WIN32 )
check in examples cmake list file. This has NOT been tested.

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

14 years agoUpdated the TableGen emitter for the Enhanced
Sean Callanan [Wed, 10 Feb 2010 02:47:08 +0000 (02:47 +0000)]
Updated the TableGen emitter for the Enhanced
Disassembler to take advantage of the refactored
AsmWriterInst.h.  Note removed parser code.

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

14 years agoChanged AsmWriterOperand to also include the index of the
Sean Callanan [Wed, 10 Feb 2010 02:27:43 +0000 (02:27 +0000)]
Changed AsmWriterOperand to also include the index of the
operand into the CodeGenInstruction's list of operands,
which is useful for EDEmitter.  (Still working on PR6219)

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

14 years agoNow that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave...
Evan Cheng [Wed, 10 Feb 2010 02:17:34 +0000 (02:17 +0000)]
Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them.

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

14 years ago"fixup" a comment.
Chris Lattner [Wed, 10 Feb 2010 01:46:47 +0000 (01:46 +0000)]
"fixup" a comment.

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

14 years agoIntroduce a new CodeGenInstruction::ConstraintInfo class
Chris Lattner [Wed, 10 Feb 2010 01:45:28 +0000 (01:45 +0000)]
Introduce a new CodeGenInstruction::ConstraintInfo class
for representing constraint info semantically instead of
as a c expression that will be blatted out to the .inc
file.  Fix X86RecognizableInstr to use this instead of
parsing C code :).

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

14 years agollvm-mc: Remove --show-fixups and always show as part of --show-encoding.
Daniel Dunbar [Wed, 10 Feb 2010 01:41:14 +0000 (01:41 +0000)]
llvm-mc: Remove --show-fixups and always show as part of --show-encoding.

Also, fix a silly memory leak.

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

14 years agoRewrite loop to suit Chris' preference.
Dale Johannesen [Wed, 10 Feb 2010 01:31:26 +0000 (01:31 +0000)]
Rewrite loop to suit Chris' preference.

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

14 years agofix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h.
Chris Lattner [Wed, 10 Feb 2010 01:23:18 +0000 (01:23 +0000)]
fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h.

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

14 years agoRemove duplicated #include.
Evan Cheng [Wed, 10 Feb 2010 01:22:57 +0000 (01:22 +0000)]
Remove duplicated #include.

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

14 years agoEmit an error for illegal inline asm constraint (which uses illegal type) rather...
Evan Cheng [Wed, 10 Feb 2010 01:21:02 +0000 (01:21 +0000)]
Emit an error for illegal inline asm constraint (which uses illegal type) rather than asserting.

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

14 years agofix missing #includes.
Chris Lattner [Wed, 10 Feb 2010 01:17:36 +0000 (01:17 +0000)]
fix missing #includes.

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

14 years agodaniel *really* likes fixups!
Chris Lattner [Wed, 10 Feb 2010 01:05:28 +0000 (01:05 +0000)]
daniel *really* likes fixups!

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

14 years agoStop MachineInstr.h from #including AsmPrinter.h
Chris Lattner [Wed, 10 Feb 2010 01:04:16 +0000 (01:04 +0000)]
Stop MachineInstr.h from #including AsmPrinter.h

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

14 years agoImprove comments a even more.
Bill Wendling [Wed, 10 Feb 2010 00:59:47 +0000 (00:59 +0000)]
Improve comments a even more.

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

14 years agoSkip DBG_VALUE many places in live intervals and
Dale Johannesen [Wed, 10 Feb 2010 00:55:42 +0000 (00:55 +0000)]
Skip DBG_VALUE many places in live intervals and
register coalescing.  This fixes many crashes and
places where debug info affects codegen (when
dbg.value is lowered to machine instructions, which
it isn't yet in TOT).

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

14 years agoMove verbose asm instruction comments to using MCStreamer.
Chris Lattner [Wed, 10 Feb 2010 00:47:53 +0000 (00:47 +0000)]
Move verbose asm instruction comments to using MCStreamer.
The major win of this is that the code is simpler and they
print on the same line as the instruction again:

        movl    %eax, 96(%esp)          ## 4-byte Spill
        movl    96(%esp), %eax          ## 4-byte Reload
        cmpl    92(%esp), %eax          ## 4-byte Folded Reload
        jl      LBB7_86

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

14 years agoImprove comments a bit more.
Bill Wendling [Wed, 10 Feb 2010 00:45:28 +0000 (00:45 +0000)]
Improve comments a bit more.

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

14 years agomore comment updates
Dale Johannesen [Wed, 10 Feb 2010 00:44:23 +0000 (00:44 +0000)]
more comment updates

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

14 years agoAdd isDebug argument to ChangeToRegister; this prevents
Dale Johannesen [Wed, 10 Feb 2010 00:41:49 +0000 (00:41 +0000)]
Add isDebug argument to ChangeToRegister; this prevents
the field from being used uninitialized later in some cases.

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

14 years agoprint all the newlines at the end of instructions with
Chris Lattner [Wed, 10 Feb 2010 00:36:00 +0000 (00:36 +0000)]
print all the newlines at the end of instructions with
OutStreamer.AddBlankLine instead of textually.

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

14 years agoIntegerValType holds a uint32_t, so its constructor should take a uint32_t. This...
Kenneth Uildriks [Wed, 10 Feb 2010 00:14:03 +0000 (00:14 +0000)]
IntegerValType holds a uint32_t, so its constructor should take a uint32_t.  This allows it to be properly initialized with bit widths > 65535

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

14 years agoFix comments to reflect renaming elsewhere.
Dale Johannesen [Wed, 10 Feb 2010 00:11:11 +0000 (00:11 +0000)]
Fix comments to reflect renaming elsewhere.

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

14 years agoFix the encoding of the movntdqa X86 instruction. It was missing the 0x66
Kevin Enderby [Wed, 10 Feb 2010 00:10:31 +0000 (00:10 +0000)]
Fix the encoding of the movntdqa X86 instruction.  It was missing the 0x66
prefix which is part of the opcode encoding.

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

14 years agoAdd ability for MCInstPrinters to add comments for instructions.
Chris Lattner [Wed, 10 Feb 2010 00:10:18 +0000 (00:10 +0000)]
Add ability for MCInstPrinters to add comments for instructions.
Enhance the x86 backend to show the hex values of immediates in
comments when they are large.  For example:

        movl    $1072693248, 4(%esp)    ## imm = 0x3FF00000

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

14 years agoTableGen fragment refactoring.
David Greene [Tue, 9 Feb 2010 23:52:19 +0000 (23:52 +0000)]
TableGen fragment refactoring.

Move some utility TableGen defs, classes, etc. into a common file so
they may be used my multiple pattern files.  We will use this for
the AVX specification to help with the transition from the current
SSE specification.

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

14 years agoAdds a JIT based exception handling example to the examples directory.
Garrison Venn [Tue, 9 Feb 2010 23:22:43 +0000 (23:22 +0000)]
Adds a JIT based exception handling example to the examples directory.
Both zero cost example domain specific, and C++ foreign exception handling are
shown. The example's documentation fully explains how to run the example.

Notes:

1)   The code uses an extremely simple type info model.
2)   Only a single landing pad is used per unwind edge
     (one call to llvm.eh.selector)
3)   llvm.eh.selector support for filter arguments is not given.
4)   llvm.eh.typeid.for is not used.
5)   Forced unwind behavior is not supported.
6)   Very little if any error handling is given.
7)   __attribute__((__aligned__)) is used.
8)   The code uses parts from the llvm compiler-rt project and
     the llvm Kaleidoscope example.
9)   The code has not been ported or tested on WINDOWS.
10)  The code was not tested with a cmake build.
11)  The code was tested for a debug build on 32bit X86 CentOS LINUX,
     and both a debug and release build on OS X 10.6.2 (64bit).

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

14 years agoFixed some indentation in the AsmWriterInst
Sean Callanan [Tue, 9 Feb 2010 23:06:35 +0000 (23:06 +0000)]
Fixed some indentation in the AsmWriterInst
implementation.  Also changed the constructor
so that it does not require a Record, making it
usable by the EDEmitter.

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

14 years agoAdd VBIF/VBIT for disassembly only.
Johnny Chen [Tue, 9 Feb 2010 23:05:23 +0000 (23:05 +0000)]
Add VBIF/VBIT for disassembly only.
A8.6.279

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

14 years agoMake --disable-libffi work on systems with libffi installed. Also
Jeffrey Yasskin [Tue, 9 Feb 2010 23:03:44 +0000 (23:03 +0000)]
Make --disable-libffi work on systems with libffi installed.  Also
make no-ffi the default even on systems with libffi.  This fixes
http://llvm.org/PR5018.

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