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