Commit Graph

55352 Commits

Author SHA1 Message Date
Douglas Gregor 051b92c3cd Revert 92020 until I figure out a more portable fix
llvm-svn: 92021
2009-12-23 19:04:10 +00:00
Douglas Gregor 93254e1ffb Move the extern symbol declarations outside of
DynamicLibrary::SearchForAddressOfSymbol and force them to have "C"
linkage. 

Interestingly, GCC treats the block-scoped "extern" declarations we
previously had as if they were extern "C" declarations (or, at least,
were in the global namespace), so that GCC bug papered over this LLVM
bug. Clang and EDG get the linkage correct; this new variant seems to
work for both GCC and Clang.

llvm-svn: 92020
2009-12-23 18:56:27 +00:00
Douglas Gregor 66ffa50e6d Fix another -Wmismatched-tags warning
llvm-svn: 92017
2009-12-23 18:27:13 +00:00
David Greene 532b3a278a Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92016
2009-12-23 18:25:37 +00:00
David Greene 6d5479e103 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92013
2009-12-23 17:55:11 +00:00
Nuno Lopes 129819de71 move a few more symbols to .rodata
llvm-svn: 92011
2009-12-23 17:48:10 +00:00
David Greene c853cfcc33 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92006
2009-12-23 17:24:22 +00:00
David Greene 2e52ede652 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92005
2009-12-23 17:18:22 +00:00
Douglas Gregor 35ac67ff8e Fix struct/class mismatch for LTOModule and LTOCodeGenerator, detected by Clang
llvm-svn: 92004
2009-12-23 17:05:07 +00:00
Douglas Gregor 3ab9e5077f De-bork CMake build
llvm-svn: 92003
2009-12-23 17:03:46 +00:00
David Greene 64506db8e8 Provide dbgs(), a circular-buffering debug output stream. By default it
simply passes output to errs().  If -debug-buffer-size=N is set N > 0,
dbgs() buffers its output until program termination and dumps the last N
characters sent to it.  This is handy when debugging very large inputs.

llvm-svn: 92002
2009-12-23 16:39:06 +00:00
David Greene 7ffbb50edf Add circular_raw_ostream, which buffers its output in a circular queue
and outputs it when explicitly flushed.  The intent is to use it in
situations such as debug output logging where a signal handler can take
care of flushing the buffer at program termination.

llvm-svn: 92001
2009-12-23 16:08:15 +00:00
Mikhail Glushenkov 0cb2a55c76 Make it easier to regenerate docs when srcdir != objdir.
llvm-svn: 92000
2009-12-23 12:50:03 +00:00
Mikhail Glushenkov 4429e70623 Regenerate.
llvm-svn: 91999
2009-12-23 12:49:51 +00:00
Mikhail Glushenkov 382495a0ff Cosmetic issue: more consistent naming.
llvm-svn: 91998
2009-12-23 12:49:41 +00:00
Mikhail Glushenkov f48a0c43b6 Allow (set_option SwitchOption, true).
llvm-svn: 91997
2009-12-23 12:49:30 +00:00
Sanjiv Gupta cd419eebce Reapply 91904.
llvm-svn: 91996
2009-12-23 11:19:09 +00:00
Sanjiv Gupta a33c6f90ee Added missing patterns for subtract instruction.
llvm-svn: 91995
2009-12-23 10:56:02 +00:00
Sanjiv Gupta 6920c17f1f deleting empty file.
llvm-svn: 91994
2009-12-23 10:35:24 +00:00
Sanjiv Gupta f7b4f89588 Reverting back 91904.
llvm-svn: 91993
2009-12-23 09:46:01 +00:00
Dale Johannesen a864a67185 Use more sensible type for flags in asms. PR 5570.
Patch by Sylve`re Teissier (sorry, ASCII only).

llvm-svn: 91988
2009-12-23 07:32:51 +00:00
Eric Christopher fdb33458fc Update objectsize intrinsic and associated dependencies. Fix
lowering code and update testcases.

llvm-svn: 91979
2009-12-23 02:51:48 +00:00
Chris Lattner 4e26c0e52b really remove the instruction, don't just comment it out
llvm-svn: 91976
2009-12-23 01:46:40 +00:00
Chris Lattner 518b037620 completely eliminate the MOV16r0 'instruction'. The only
interesting part of this is the divrem changes, which are
already tested by CodeGen/X86/divrem.ll.

llvm-svn: 91975
2009-12-23 01:45:04 +00:00
Sean Callanan 417c8a43d6 More fixes for Visual C++. Replaced several very small
static inline functions with macros.

llvm-svn: 91973
2009-12-23 01:32:29 +00:00
Chris Lattner 698def0868 stop pattern matching 16-bit zero's of a register to MOV16r0,
instead use the appropriate subreggy thing.  This generates identical
code on some large apps (thanks to Evan's cross class coalescing
stuff he did back in july).  This means that MOV16r0 can go away
completely in the future soon.

llvm-svn: 91972
2009-12-23 01:30:26 +00:00
Bill Wendling 0602f39bb1 Remove superfluous SDNode ordering.
llvm-svn: 91971
2009-12-23 01:28:19 +00:00
Jeffrey Yasskin 60958a1e56 Disable JITTest.FunctionIsRecompiledAndRelinked on ARM where it's not
implemented.

llvm-svn: 91963
2009-12-23 00:58:02 +00:00
Bill Wendling 9df5c6dfc3 Remove node ordering from inline asm nodes. It's not needed.
llvm-svn: 91961
2009-12-23 00:47:20 +00:00
Daniel Dunbar c7dccd8ad2 Suppress compiler warning.
llvm-svn: 91959
2009-12-23 00:45:10 +00:00
Bill Wendling 91313064f1 Remove node ordering from VA nodes. It's not needed.
llvm-svn: 91958
2009-12-23 00:44:51 +00:00
Eric Christopher 31e39bd3d4 Update docs for bitcode changes. For object size checking we won't
work with partial objects so just count the type as a boolean. Update
appropriately.

llvm-svn: 91954
2009-12-23 00:29:49 +00:00
Bill Wendling ef408db250 Revert r91949 r91942 and r91936.
llvm-svn: 91953
2009-12-23 00:28:23 +00:00
Bill Wendling 54dd5398e0 Finish up node ordering in ExpandNode.
llvm-svn: 91949
2009-12-23 00:05:09 +00:00
Jakob Stoklund Olesen b10c69edd0 Add coalescer asserts.
llvm-svn: 91945
2009-12-22 23:54:54 +00:00
Jakob Stoklund Olesen b05fbe1486 Add a SPR register class to the ARM target.
Certain Thumb instructions require only SP (e.g. tSTRspi).

llvm-svn: 91944
2009-12-22 23:54:44 +00:00
Jeffrey Yasskin 6523429779 Partially revert r91626. Materializing extra functions to determine whether
they're available_externally broke VMKit, which was relying on the fact that
functions would only be materialized when they were first called.  We'll have
to wait for http://llvm.org/PR5737 to really fix this.

I also added a test for one of the F->isDeclaration() calls which wasn't
covered by anything else in the test suite.

llvm-svn: 91943
2009-12-22 23:47:23 +00:00
Bill Wendling ad1fdf0e40 Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function
is finished.

llvm-svn: 91942
2009-12-22 23:44:56 +00:00
Jeffrey Yasskin ad46e4416b Fix a crash in JIT::recompileAndRelinkFunction(). It doesn't pass the MCI
argument to runJITOnFunction(), which caused a null pointer dereference at
every call.

Patch by Gianluca Guida!

llvm-svn: 91939
2009-12-22 23:18:18 +00:00
Bill Wendling 70794596a8 Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).

llvm-svn: 91936
2009-12-22 22:53:39 +00:00
Sean Callanan 588785c781 Removed the "inline" keyword from the disassembler decoder,
because the Visual C++ build does not build .c files as C99

llvm-svn: 91935
2009-12-22 22:51:40 +00:00
Chris Lattner b257d24f62 rename HexDisassembler -> Disassembler, it works on any input
integer encoding (0123, 0b10101, 42, etc).

llvm-svn: 91934
2009-12-22 22:50:29 +00:00
Chris Lattner e3437b33f5 just discard the debug output from the disassembler.
llvm-svn: 91933
2009-12-22 22:47:43 +00:00
Anton Korobeynikov ef3fdc1cbd Add testcase for PR5703
llvm-svn: 91931
2009-12-22 22:37:23 +00:00
Jakob Stoklund Olesen 200f82c889 Remove minimal CFG sanity checks from verifier.
These checks would often trigger on unreachable statements inserted by
bugpoint, leading it astray.

It would be nice if we could distinguish unreachable blocks from errors.

llvm-svn: 91923
2009-12-22 21:52:27 +00:00
Jakob Stoklund Olesen 3db4952357 Allow explicit %reg0 operands beyond what the .td file describes.
ARM uses these to indicate predicates.

llvm-svn: 91922
2009-12-22 21:48:20 +00:00
Bill Wendling d85498132f Allow 0 as an order number. Don't assign an order to formal arguments.
llvm-svn: 91920
2009-12-22 21:35:02 +00:00
Sean Callanan 36eab80875 Fixes to the X86 disassembler:
Made LEA memory operands emit only 4 MCInst operands.
Made the scale operand equal 1 for instructions that have no
SIB byte.

llvm-svn: 91919
2009-12-22 21:12:55 +00:00
Anton Korobeynikov 3b8235bec3 Restore snprintf weirdness for VCPP only
llvm-svn: 91918
2009-12-22 20:11:00 +00:00
Chris Lattner c0f6402a94 Fix the Convert to scalar to not insert dead loads in the store case. The
load is needed when we have a small store into a large alloca (at which 
point we get a load/insert/store sequence), but when you do a full-sized
store, this load ends up being dead.

This dead load is bad in really large nasty testcases where the load ends
up causing mem2reg to insert large chains of dependent phi nodes which only
ADCE can delete.  Instead of doing this, just don't insert the dead load.

This fixes rdar://6864035

llvm-svn: 91917
2009-12-22 19:33:28 +00:00
Chris Lattner fda3b559e6 fix some fixme's by using twines
llvm-svn: 91916
2009-12-22 19:23:33 +00:00
Jakob Stoklund Olesen 6f579c12b1 Use proper move instructions. Make the verifier happy.
llvm-svn: 91914
2009-12-22 18:49:55 +00:00
Bob Wilson bac37abe73 Report an error for bad inline assembly, where the value passed for an
"indirect" operand is not a pointer.

llvm-svn: 91913
2009-12-22 18:34:19 +00:00
Evan Cheng 71d7eaa87e Remove target attribute break-sse-dep. Instead, do not fold load into sse partial update instructions unless optimizing for size.
llvm-svn: 91910
2009-12-22 17:47:23 +00:00
Douglas Gregor 8b858396d4 Include based on the current path, since we already -I the X86 target's path. Fixes CMake build
llvm-svn: 91908
2009-12-22 17:25:11 +00:00
Sanjiv Gupta 8c5f05fcee While converting one of the operands to a memory operand, we need to check if it is Legal and does not result into a cyclic dep.
llvm-svn: 91904
2009-12-22 14:25:37 +00:00
Chris Lattner 778f92ab02 specify what is invalid about it
llvm-svn: 91901
2009-12-22 07:03:21 +00:00
Chris Lattner f6d4129c76 specify a triple to use, fixing the test on non-x86-64 hosts.
llvm-svn: 91900
2009-12-22 07:01:12 +00:00
Chris Lattner 502f0f11e0 reject invalid input with a caret, e.g.:
simple-tests.txt:16:1: error: invalid instruction
0xff 0xff
^

llvm-svn: 91898
2009-12-22 06:58:29 +00:00
Bob Wilson 62a84ea8e3 Generalize SROA to allow the first index of a GEP to be non-zero. Add a
missing check that an array reference doesn't go past the end of the array,
and remove some redundant checks for in-bound array and vector references
that are no longer needed.

llvm-svn: 91897
2009-12-22 06:57:14 +00:00
Chris Lattner dd0c01b5de various cleanups, make the disassemble reject lines with too much
data on them, for example:

	addb	%al, (%rax)
simple-tests.txt:11:5: error: excess data detected in input
0 0 0 0 0 
    ^

llvm-svn: 91896
2009-12-22 06:56:51 +00:00
Chris Lattner 8879918722 If you thought that it didn't make sense for the disassembler
to not produce caret diagnostics, you were right!

llvm-svn: 91895
2009-12-22 06:45:48 +00:00
Chris Lattner dc9845b79a rewrite the file parser for the disassembler, implementing support for
comments.  Also, check in a simple testcase for the disassembler,
including a test for r91864

llvm-svn: 91894
2009-12-22 06:37:58 +00:00
Chris Lattner 72cbaa2ecb don't crash on blank lines, rename some variables.
llvm-svn: 91892
2009-12-22 06:24:00 +00:00
Chris Lattner f21a220bcd Implement PR5795 by merging duplicated return blocks. This could go further
by merging all returns in a function into a single one, but simplifycfg 
currently likes to duplicate the return (an unfortunate choice!)

llvm-svn: 91890
2009-12-22 06:07:30 +00:00
Chris Lattner 2b297ed9ee convert to filecheck
llvm-svn: 91889
2009-12-22 06:04:26 +00:00
Chris Lattner f3ef2cada7 don't run GVN at -O1, GCC doesn't do it's equivalent at that optimization level.
llvm-svn: 91886
2009-12-22 04:47:41 +00:00
Chris Lattner 9b7d99eb76 The phi translated pointer can be computed when returning a partially cached result
instead of stored.  This reduces memdep memory usage, and also eliminates a bunch of
weakvh's.  This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x)
on a different machine than earlier.

llvm-svn: 91885
2009-12-22 04:25:02 +00:00
Bill Wendling 919b7aab2e Add more plumbing. This time in the LowerArguments and "get" functions which
return partial registers. This affected the back-end lowering code some.

Also patch up some places I missed before in the "get" functions.

llvm-svn: 91880
2009-12-22 02:10:19 +00:00
Sean Callanan 2f9443f422 Changed REG_* to MODRM_REG_* to avoid conflicts
with symbols in AuroraUX's global namespace.

llvm-svn: 91879
2009-12-22 02:07:42 +00:00
Daniel Dunbar 8b532de418 Fix some may-be-uninitialized var warnings.
llvm-svn: 91878
2009-12-22 01:41:37 +00:00
Chris Lattner 3d1205b3a8 fix unit test that I broke.
llvm-svn: 91877
2009-12-22 01:38:23 +00:00
Bill Wendling ac08758b71 Add SDNode ordering to inlined asm and VA functions.
llvm-svn: 91876
2009-12-22 01:25:10 +00:00
Eric Christopher ab6a0d60d5 Whitespace fixes.
llvm-svn: 91875
2009-12-22 01:23:51 +00:00
Chris Lattner 18d8b7575e types don't need atomic inc/dec, they are local to an llvmcontext.
llvm-svn: 91873
2009-12-22 01:17:43 +00:00
Bill Wendling f376c40d0e Adding more assignment of ordering to SDNodes. This time in the "call" and
generic copy functions.

llvm-svn: 91872
2009-12-22 01:11:43 +00:00
Sean Callanan 5c8f4cd396 Fixed library dependencies between the X86 disassembler and
X86 codegen that were causing circular symbol dependencies.

llvm-svn: 91871
2009-12-22 01:11:26 +00:00
Chris Lattner 2ee6787c1b avoid calling extractMallocCall when it's obvious we don't have
a call.  This speeds up memdep ~1.5%

llvm-svn: 91869
2009-12-22 01:00:32 +00:00
Chris Lattner 84463813a1 comment fix: weakvh -> tracking vh
llvm-svn: 91867
2009-12-22 00:51:57 +00:00
Bill Wendling a4d7df7a37 Add ordering of SDNodes to LowerCallTo.
llvm-svn: 91866
2009-12-22 00:50:32 +00:00
Chris Lattner 6211d7ba4b print pcrel immediates as signed values instead of unsigned so that we
get things like this out of the disassembler:

0x100000ecb: callq	-96

instead of:

0x100000ecb: callq	4294967200

rdar://7491123

llvm-svn: 91864
2009-12-22 00:44:05 +00:00
Bill Wendling b99b2693f3 Now add ordering to SDNodes created by the massive intrinsic lowering function.
llvm-svn: 91863
2009-12-22 00:40:51 +00:00
Bill Wendling ea3e73e596 To make things interesting, I added MORE code to set the ordering of
SDNodes. This time in the load/store and limited-precision code.

llvm-svn: 91860
2009-12-22 00:12:37 +00:00
Lang Hames 4c052261de Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint.
This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals.

llvm-svn: 91859
2009-12-22 00:11:50 +00:00
Bill Wendling c6b473433b Add more plumbing to assign ordering to SDNodes. Have the "getValue" method
assign the ordering when called. Combine some of the ordering assignments to
keep things simple.

llvm-svn: 91857
2009-12-21 23:47:40 +00:00
Daniel Dunbar c661a2d4d8 Add suggested parentheses.
llvm-svn: 91853
2009-12-21 23:27:57 +00:00
Chris Lattner bf20018423 Add a fastpath to Load GVN to special case when we have exactly one dominating
load to avoid even messing around with SSAUpdate at all.  In this case (which
is very common, we can just use the input value directly).

This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s,
which still isn't great, but substantially better and this is a simple speedup
that applies to lots of different cases.

llvm-svn: 91851
2009-12-21 23:15:48 +00:00
Bill Wendling e79105b591 More ordering plumbing. This time for GEP. I need to remember to assign
orderings to values returned by getValue().

llvm-svn: 91850
2009-12-21 23:10:19 +00:00
Chris Lattner 927b0ac4b2 refactor some code out to a new helper method.
llvm-svn: 91849
2009-12-21 23:04:33 +00:00
Chris Lattner eaa25da8bb improve indentation avoid a pointless conversion from weakvh to trackingvh,
no functionality change.

llvm-svn: 91848
2009-12-21 22:43:03 +00:00
Bill Wendling fff99f066b Another incremental check-in for assigning ordering to SDNodes. This time for
shuffle and insert vector.

llvm-svn: 91847
2009-12-21 22:42:14 +00:00
Bill Wendling 443d0722b0 Assign ordering to more instructions. Incremental check-in.
llvm-svn: 91846
2009-12-21 22:30:11 +00:00
Bill Wendling 28727f3785 - Add a bit more plumbing assigning an order to SDNodes.
- Modify the "dump" method to emit the order of an SDNode.

llvm-svn: 91845
2009-12-21 21:59:52 +00:00
David Greene dbf7074296 Fix a bug in !subst where TableGen would go and resubstitute text it had
just substituted.  This could cause infinite looping in certain
pathological cases.

llvm-svn: 91843
2009-12-21 21:21:34 +00:00
Anton Korobeynikov 131420c5d7 Remove uber-gross hack. The define _snprintf to snprintf is invalid due to two reasons: 1. Accroding to C++ standard snprintf should be available in std namespace (and __gnu_cxx in case of GCC to). Such ifdef will change all snprintf's to _snprintf's, but won't bring snprintf to all necessary namespaces. Thus e.g. any locale-using code on mingw will yield an error (include this file + string to see the result) 2. MSVCRT's _snprintf does not comply with C99 standard. Standard one is snprintf.
llvm-svn: 91842
2009-12-21 20:19:37 +00:00
Anton Korobeynikov 3e9e87a9cb Mark FPW as allocable when frame address is taken.
llvm-svn: 91841
2009-12-21 20:18:49 +00:00
Bill Wendling 7f5eb53ce2 First wave of plumbing for assigning an ordering to SDNodes. This takes care of
a lot of the branching instructions.

llvm-svn: 91838
2009-12-21 19:59:38 +00:00
Evan Cheng db4d798619 Delete the instruction just before the function terminates for consistency sake.
llvm-svn: 91836
2009-12-21 19:53:39 +00:00
Bill Wendling 6de55a0efd Place SDNodeOrdering.h in the directory it's used.
llvm-svn: 91834
2009-12-21 19:34:59 +00:00
Bob Wilson 88a0598fe8 Remove special-case SROA optimization of variable indexes to one-element and
two-element arrays.  After restructuring the SROA code, it was not safe to
do this without adding more checking.  It is not clear that this special-case
has really been useful, and removing this simplifies the code quite a bit.

llvm-svn: 91828
2009-12-21 18:39:47 +00:00
Daniel Dunbar 0fc1f6c595 XFAIL these tests on powerpc, under the assumption that no one cares. If you care, feel free to fix.
llvm-svn: 91826
2009-12-21 17:31:59 +00:00
Eric Christopher a91c0f48e6 Fix setting and default setting of code model for jit. Do this
by allowing backends to override routines that will default
the JIT and Static code generation to an appropriate code model
for the architecture.

Should fix PR 5773.

llvm-svn: 91824
2009-12-21 08:15:29 +00:00
Eli Friedman dbe2aa91b9 A couple minor README updates.
llvm-svn: 91823
2009-12-21 08:03:16 +00:00
Chris Lattner a0a51c7b0e improve compatibility with SWIG, patch by James Knight!
llvm-svn: 91822
2009-12-21 07:52:40 +00:00
Chris Lattner 4edfcb88e1 revert r89298, which was committed without a testcase. I think
the underlying PHI node insertion issue in SSAUpdate is fixed.

llvm-svn: 91821
2009-12-21 07:45:57 +00:00
Chris Lattner 8fb07c5a21 fix PR5837 by having SSAUpdate reuse phi nodes for the
'GetValueInMiddleOfBlock' case, instead of inserting 
duplicates.

A similar fix is almost certainly needed by the machine-level
SSAUpdate implementation.

llvm-svn: 91820
2009-12-21 07:16:11 +00:00
Chris Lattner 080f666e01 add a helper ctor.
llvm-svn: 91819
2009-12-21 07:15:15 +00:00
Eli Friedman 00879d8faa Change StringRef::startswith and StringRef::endswith to versions which are a
bit more verbose, but optimize to much shorter code.

llvm-svn: 91817
2009-12-21 06:49:24 +00:00
Chris Lattner 7bc85a931e add check lines for min/max tests.
llvm-svn: 91816
2009-12-21 06:08:50 +00:00
Chris Lattner 33269813df really convert this to filecheck.
llvm-svn: 91815
2009-12-21 06:06:10 +00:00
Chris Lattner d4fb4296df give instcombine some helper functions for matching MIN and MAX, and
implement some optimizations for MIN(MIN()) and MAX(MAX()) and 
MIN(MAX()) etc.  This substantially improves the code in PR5822 but
doesn't kick in much elsewhere.  2 max's were optimized in 
pairlocalalign and one in smg2000.

llvm-svn: 91814
2009-12-21 06:03:05 +00:00
Chris Lattner 7a72d50de7 filecheckize
llvm-svn: 91813
2009-12-21 05:53:13 +00:00
Chris Lattner ffbd02829c enhance x-(-A) -> x+A to preserve NUW/NSW.
Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in
cases where it would otherwise be undefined behavior.

Surprisingly (to me at least), this triggers hundreds of the times in
a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really*
like this.

llvm-svn: 91812
2009-12-21 04:04:05 +00:00
Chris Lattner 900ce231f9 Optimize all cases of "icmp (X+Cst), X" to something simpler. This triggers
a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others.  It is 
also the first part of PR5822

llvm-svn: 91811
2009-12-21 03:19:28 +00:00
Chris Lattner d18b455086 convert to filecheck
llvm-svn: 91810
2009-12-21 03:11:05 +00:00
Lang Hames 0209f50c0d Fixed use of phi param in SlotIndex constructors.
llvm-svn: 91790
2009-12-19 23:32:32 +00:00
Chris Lattner 25bf6f8946 fix an overly conservative caching issue that caused memdep to
cache a pointer as being unavailable due to phi trans in the
wrong place.  This would cause later queries to fail even when
they didn't involve phi trans.

llvm-svn: 91787
2009-12-19 21:29:22 +00:00
Daniel Dunbar 039d6e11a8 CMake: Update lib deps.
llvm-svn: 91786
2009-12-19 21:27:30 +00:00
Chris Lattner 5c13f389cb .llx is no more.
llvm-svn: 91784
2009-12-19 20:56:53 +00:00
Chris Lattner 95b431dd32 fix inconsistent use of tabs
llvm-svn: 91783
2009-12-19 20:44:43 +00:00
Daniel Dunbar 877075a41f Remove unused variable (noticed by clang++).
llvm-svn: 91780
2009-12-19 18:58:49 +00:00
Daniel Dunbar 4750efc28a #if 0 out X86 disassembler for now, it is breaking the build in multiple places.
llvm-svn: 91778
2009-12-19 17:11:53 +00:00
Sanjiv Gupta 8ac077df57 Emit direction operand in binary insns that stores in memory.
llvm-svn: 91777
2009-12-19 13:52:01 +00:00
Sanjiv Gupta bdef02be69 Adding a bunch of options to the mcc16 driver.
llvm-svn: 91776
2009-12-19 13:13:29 +00:00
Nuno Lopes 3ed6d6003c rename dprintf to dbgpritnf, in order to fix build with glibc (which already defines dprintf in stdio.h
llvm-svn: 91775
2009-12-19 12:07:00 +00:00
Nuno Lopes 91b866a163 fix build and while at it remove a redudant include
llvm-svn: 91774
2009-12-19 11:52:18 +00:00
Sanjiv Gupta bda8002e7f Test cases for changes done in 91768.
llvm-svn: 91773
2009-12-19 11:38:14 +00:00
Sanjiv Gupta 4f469974b2 1. In indirect load/store insns , the name of fsr should be emitted as INDF.
2. include standard asmbly headers in generated asmbly.

llvm-svn: 91768
2009-12-19 08:26:25 +00:00
Douglas Gregor 740ab38bb7 Fix a bunch of little errors that Clang complains about when its being pedantic
llvm-svn: 91764
2009-12-19 07:05:23 +00:00
Chris Lattner 4ad5eba568 fix PR5827 by disabling the phi slicing transformation in a case
where instcombine would have to split a critical edge due to a
phi node of an invoke.  Since instcombine can't change the CFG,
it has to bail out from doing the transformation.

llvm-svn: 91763
2009-12-19 07:01:15 +00:00
Bob Wilson c16811b575 Update my SROA changes in response to review.
* change FindElementAndOffset to return a uint64_t instead of unsigned, and
  to identify the type to be used for that result in a GEP instruction.
* move "isa<ConstantInt>" to be first in conditional.
* replace some dyn_casts with casts.
* add a comment about handling mem intrinsics.

llvm-svn: 91762
2009-12-19 06:53:17 +00:00
Daniel Dunbar 3a821f7f0c More bzero -> memset that I missed.
llvm-svn: 91757
2009-12-19 04:16:57 +00:00
Daniel Dunbar f008ea5fa0 Add missing newlines at EOF (for clang++).
llvm-svn: 91756
2009-12-19 04:16:48 +00:00
Daniel Dunbar c745a620a2 Use memset instead of bzero, its more portable.
llvm-svn: 91754
2009-12-19 03:31:50 +00:00
Douglas Gregor 0a66daf900 Remove spurious semicolon. Thanks, Clang
llvm-svn: 91752
2009-12-19 03:21:36 +00:00
Sean Callanan 04cc307edd Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit
incarnations), integrated into the MC framework.  

The disassembler is table-driven, using a custom TableGen backend to 
generate hierarchical tables optimized for fast decode.  The disassembler 
consumes MemoryObjects and produces arrays of MCInsts, adhering to the 
abstract base class MCDisassembler (llvm/MC/MCDisassembler.h).

The disassembler is documented in detail in

- lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime)
- utils/TableGen/DisassemblerEmitter.cpp (table emitter)

You can test the disassembler by running llvm-mc -disassemble for i386
or x86_64 targets.  Please let me know if you encounter any problems
with it.

llvm-svn: 91749
2009-12-19 02:59:52 +00:00
Anton Korobeynikov 148d87b0b0 Bump alignment requirements for windows targets to achieve compartibility with vcpp.
Based on patch by Michael Beck!

llvm-svn: 91745
2009-12-19 02:04:23 +00:00
Anton Korobeynikov 10590171fa Use 4-arg getVTList) variant instead of generic one, when possible
llvm-svn: 91744
2009-12-19 02:04:00 +00:00
Dan Gohman a73df58110 Delete unused code.
llvm-svn: 91743
2009-12-19 01:47:13 +00:00
Dan Gohman 876f45d7d2 Fix a spello in a comment that Nick spotted.
llvm-svn: 91742
2009-12-19 01:46:34 +00:00
Dan Gohman b0da63da1e Fix a comment.
llvm-svn: 91741
2009-12-19 01:46:09 +00:00
Chris Lattner dd3e9aaad3 Make some methods const. The only interesting change here is that
it changes raw_fd_ostream::preferred_buffer_size to return zero on
a scary stat failure instead of setting the stream to an error state.
This method really should not mutate the stream.

llvm-svn: 91740
2009-12-19 01:38:42 +00:00
John McCall 086bb4ef82 Qualify a bunch of explicit template instantiations to satisfy clang++.
llvm-svn: 91736
2009-12-19 00:55:12 +00:00
John McCall 791e5c9dd5 Put TypesEqual and TypeHasCycleThroughItself in namespace llvm so ADL from
the templates in TypesContext.h can find them.  Caught by clang++.

llvm-svn: 91735
2009-12-19 00:51:42 +00:00
Bill Wendling 57f2a6187a Forgot forward declaration.
llvm-svn: 91732
2009-12-19 00:05:07 +00:00
Dan Gohman f902c8c1b5 Eliminate unnecessary LLVMContexts.
llvm-svn: 91729
2009-12-18 23:42:08 +00:00
Bill Wendling 022d18fa3f Changes from review:
- Move DisableScheduling flag into TargetOption.h
- Move SDNodeOrdering into its own header file. Give it a minimal interface that
  doesn't conflate construction with storage.
- Move assigning the ordering into the SelectionDAGBuilder.

This isn't used yet, so there should be no functional changes.

llvm-svn: 91727
2009-12-18 23:32:53 +00:00
Dan Gohman 7db230f5c9 Make this comment more precise.
llvm-svn: 91722
2009-12-18 23:18:03 +00:00
Eli Friedman 36623cc253 Fix an issue in googletest where a name was used before it was defined.
llvm-svn: 91718
2009-12-18 21:38:44 +00:00
Evan Cheng b175de6356 Increase opportunities to optimize (brcond (srl (and c1), c2)).
llvm-svn: 91717
2009-12-18 21:31:31 +00:00