Chris Lattner [Wed, 9 Dec 2009 02:43:05 +0000 (02:43 +0000)]
the code in GVN that tries to forward large loads to small
stores is not phi translating, thus it miscompiles really
crazy testcases. This is from inspection, I haven't seen
this in the wild.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90930
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 02:41:54 +0000 (02:41 +0000)]
add some aborts to #if 0's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90929
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 01:59:31 +0000 (01:59 +0000)]
Switch GVN and memdep to use PHITransAddr, which correctly handles
phi translation of complex expressions like &A[i+1]. This has the
following benefits:
1. The phi translation logic is all contained in its own class with
a strong interface and verification that it is self consistent.
2. The logic is more correct than before. Previously, if intermediate
expressions got PHI translated, we'd miss the update and scan for
the wrong pointers in predecessor blocks. @phi_trans2 is a testcase
for this.
3. We have a lot less code in memdep.
We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).
This patch should fix the miscompiles of 255.vortex, and I tested it
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Dec 2009 01:53:58 +0000 (01:53 +0000)]
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 9 Dec 2009 01:46:00 +0000 (01:46 +0000)]
Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90923
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Dec 2009 01:36:00 +0000 (01:36 +0000)]
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 01:19:16 +0000 (01:19 +0000)]
fix a nasty variable that was shadowing the real CurBB but with the wrong value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90920
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Dec 2009 01:17:24 +0000 (01:17 +0000)]
Infer alignment for non-fixed stack object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Dec 2009 01:10:37 +0000 (01:10 +0000)]
Add const qualifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Dec 2009 01:04:59 +0000 (01:04 +0000)]
Refactor InferAlignment out of DAGCombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 00:56:14 +0000 (00:56 +0000)]
fix many input tracking bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90915
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 00:41:28 +0000 (00:41 +0000)]
when opt crashes, print its command line arguments as a pretty stack trace.
Somehow opt was missed when this was added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90912
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 9 Dec 2009 00:28:42 +0000 (00:28 +0000)]
Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,
that Chris noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90910
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 00:18:13 +0000 (00:18 +0000)]
fix PHI translation to take the PHI out of the instinputs set and add
the translated value back to it if an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90909
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 00:10:55 +0000 (00:10 +0000)]
instructions defined in CurBB may be intermediate nodes of the computation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90908
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Dec 2009 00:01:00 +0000 (00:01 +0000)]
add dumping and sanity checking support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90906
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Dec 2009 23:59:12 +0000 (23:59 +0000)]
Put a threshold on the number of users PointerMayBeCaptured
examines; fall back to a conservative answer if there are
more. This works around some several compile time problems
resulting from BasicAliasAnalysis calling PointerMayBeCaptured.
The value has been chosen arbitrarily.
This fixes rdar://
7438917 and may partially address PR5708.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90905
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Dec 2009 23:42:51 +0000 (23:42 +0000)]
make sure that PHITransAddr keeps its 'InstInputs' list up to
date when instsimplify kicks in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90901
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 8 Dec 2009 23:21:45 +0000 (23:21 +0000)]
Revert 90858 90875 and 90805 for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Dec 2009 23:06:22 +0000 (23:06 +0000)]
- Support inline asm 'w' constraint for 128-bit vector types.
- Also support the 'q' NEON registers asm code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90894
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 19:49:30 +0000 (19:49 +0000)]
lit: Prevent crash-on-invalid (when run on directory which has no test suite).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90871
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 19:48:01 +0000 (19:48 +0000)]
Set svn:ignore on tools/clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90870
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Dec 2009 19:47:36 +0000 (19:47 +0000)]
CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90869
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Dec 2009 19:34:53 +0000 (19:34 +0000)]
Revert 90789 for now. It caused massive compile time regression. Post-ra scheduler slowed down dramatically with this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90868
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 8 Dec 2009 18:27:03 +0000 (18:27 +0000)]
Some superficial cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90866
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 8 Dec 2009 18:22:03 +0000 (18:22 +0000)]
Clean up dead operands left around after SROA replaces a mem intrinsic.
I'm not aware that this does anything significant on its own, but it's
needed for another patch that I'm working on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90864
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 8 Dec 2009 15:31:31 +0000 (15:31 +0000)]
Cleanup.
There is no need to supply ModuleCU to addType() as a parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 8 Dec 2009 15:01:35 +0000 (15:01 +0000)]
Do not try to push dead variable's debug info into namespace info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Dec 2009 13:07:38 +0000 (13:07 +0000)]
Remove useless calls to c_str().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90855
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Dec 2009 10:10:20 +0000 (10:10 +0000)]
Teach GlobalOpt to delete aliases with internal linkage (after
forwarding any uses). GlobalDCE can also do this, but is only
run at -O3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90850
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Dec 2009 06:06:26 +0000 (06:06 +0000)]
fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not
side-effect the current object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90837
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 8 Dec 2009 05:45:41 +0000 (05:45 +0000)]
Remove unnecessary #include "llvm/LLVMContext.h".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90836
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Dec 2009 05:31:46 +0000 (05:31 +0000)]
whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90834
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Tue, 8 Dec 2009 02:49:54 +0000 (02:49 +0000)]
Removed VC++ compatibility code from DataTypes.h.in.
This header file is not used on VC++ builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90829
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Tue, 8 Dec 2009 02:40:09 +0000 (02:40 +0000)]
For VC++, define the ?INT*_C macros only it they are not yet defined.
Some compatibility updates like the Boost TR1 compatibility headers
define them.
Patch contributed by OvermindDL1!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90828
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 8 Dec 2009 01:03:04 +0000 (01:03 +0000)]
Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction. Patch inspired by Brian Lucas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90819
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 23:11:03 +0000 (23:11 +0000)]
Watch out for duplicated PHI instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 23:10:34 +0000 (23:10 +0000)]
Follow up to 90488. Turn a check into an assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 7 Dec 2009 22:32:38 +0000 (22:32 +0000)]
Fix the OProfileJITEventListener for StringRef being returned from debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90813
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Mon, 7 Dec 2009 21:54:43 +0000 (21:54 +0000)]
Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90807
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 7 Dec 2009 21:41:32 +0000 (21:41 +0000)]
Add support to emit debug info for c++ style namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 21:19:33 +0000 (21:19 +0000)]
Delete code accidentally left behind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 19:52:57 +0000 (19:52 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90793
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 19:45:30 +0000 (19:45 +0000)]
add accessor, improve comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90792
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 19:42:22 +0000 (19:42 +0000)]
Test case for 90787.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90791
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 7 Dec 2009 19:40:26 +0000 (19:40 +0000)]
Use FileCheck and set nounwind on calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90790
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Dec 2009 19:38:26 +0000 (19:38 +0000)]
Apply Pekka Jääskeläinen's patch to raise the first virtual register
number in order to accomodate targets with more than 1024 registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90789
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Mon, 7 Dec 2009 19:36:34 +0000 (19:36 +0000)]
Introduce the "@llvm.dbg.value" debug intrinsic.
The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value.
An example:
call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2)
Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90788
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 19:16:13 +0000 (19:16 +0000)]
Simplify a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90785
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 19:15:57 +0000 (19:15 +0000)]
Throw 'const char*' instead of 'std::string'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90784
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 19:04:49 +0000 (19:04 +0000)]
add support for phi translation and incorpation of new expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90782
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Dec 2009 19:04:31 +0000 (19:04 +0000)]
Don't enable the post-RA scheduler on x86 except at -O3. In its
current form, it is too expensive in compile time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90781
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 7 Dec 2009 18:36:53 +0000 (18:36 +0000)]
checkpoint of the new PHITransAddr code, still not done and not used by
anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90779
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 18:26:24 +0000 (18:26 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90776
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 18:26:11 +0000 (18:26 +0000)]
Documentation update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90775
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 18:25:54 +0000 (18:25 +0000)]
Deprecate 'unpack_values'.
Use 'forward_values' + 'comma_separated' instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90774
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 17:03:21 +0000 (17:03 +0000)]
Pass '-msse' and friends to llc as '-mattr=+/-'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90771
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 17:03:05 +0000 (17:03 +0000)]
Implement 'forward_value' and 'forward_transformed_value'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90770
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 7 Dec 2009 10:51:55 +0000 (10:51 +0000)]
Refactoring, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90764
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 10:15:19 +0000 (10:15 +0000)]
Pre-regalloc tale duplication. Work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759
91177308-0d34-0410-b5e6-
96231b3b80d8
John Mosby [Mon, 7 Dec 2009 09:06:37 +0000 (09:06 +0000)]
fixed some typos in method comments, reworded some comments for clarity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90754
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Mon, 7 Dec 2009 05:29:59 +0000 (05:29 +0000)]
Fixes the Atomic implementation if compiled by MSVC compiler.
sys::cas_flag should be long on this platform, InterlockedAdd() is
defined only for the Itanium architecture (according to MSDN).
Patch by Michael Beck!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90748
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Dec 2009 03:07:01 +0000 (03:07 +0000)]
If BB is empty, insert PHI before end() instead of front().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:41 +0000 (02:28 +0000)]
Some pretty-printing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90742
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:26 +0000 (02:28 +0000)]
Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:10 +0000 (02:28 +0000)]
Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90740
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:27:53 +0000 (02:27 +0000)]
Initial codegen support for MSP430 ISRs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90739
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:27:35 +0000 (02:27 +0000)]
Add MSP430 interrupt calling conv. No functionality change yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90738
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 7 Dec 2009 02:27:08 +0000 (02:27 +0000)]
Add ability to select hw multiplier mode and select appropriate libcalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90737
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Dec 2009 00:27:35 +0000 (00:27 +0000)]
Fix typos. Thanks to John Tytgat for noticing it!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90728
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 6 Dec 2009 22:39:50 +0000 (22:39 +0000)]
Dynamic stack realignment use of sp register as source/dest register
in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode.
Emit the following code instead:
mov r4, sp
bic r4, r4, #15
mov sp, r4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90724
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 17:17:23 +0000 (17:17 +0000)]
fix PR5698
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90708
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 16:58:41 +0000 (16:58 +0000)]
remove extraneous comma clang warns about
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90707
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 05:29:56 +0000 (05:29 +0000)]
constant fold loads from memcpy's from global constants. This is important
because clang lowers nontrivial automatic struct/array inits to memcpy from
a global array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90698
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 04:54:31 +0000 (04:54 +0000)]
add support for forwarding mem intrinsic values to non-local loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 04:16:05 +0000 (04:16 +0000)]
gvn is optimizing this better now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90696
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 01:57:02 +0000 (01:57 +0000)]
Handle forwarding local memsets to loads. For example, we optimize this:
short x(short *A) {
memset(A, 1, sizeof(*A)*100);
return A[42];
}
to 'return 257' instead of doing the load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90695
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 01:56:22 +0000 (01:56 +0000)]
Add helper methods for forming shift operations with a constant
shift amount.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90694
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 6 Dec 2009 01:47:24 +0000 (01:47 +0000)]
merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90691
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 6 Dec 2009 00:06:33 +0000 (00:06 +0000)]
CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90685
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 5 Dec 2009 23:19:33 +0000 (23:19 +0000)]
Fix for atomic intrinsics detection when using MSVC.
Patch by Michael Beck!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90683
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 17:56:26 +0000 (17:56 +0000)]
Remove old DBG_LABEL code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 17:51:33 +0000 (17:51 +0000)]
Remove the unused DisableLegalizeTypes option and related code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 5 Dec 2009 07:59:04 +0000 (07:59 +0000)]
Calling InvalidateEntry during the refinement was breaking the bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90656
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 5 Dec 2009 07:46:49 +0000 (07:46 +0000)]
Final cleanups:
- Privatize a typedef.
- Call the InvalidateEntry when refining a type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90655
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 5 Dec 2009 07:30:23 +0000 (07:30 +0000)]
Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90653
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 5 Dec 2009 06:37:52 +0000 (06:37 +0000)]
Document that memory use intrinsics may also return Def results.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90651
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 5 Dec 2009 06:37:24 +0000 (06:37 +0000)]
Fix indentation in switch statement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90650
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 5 Dec 2009 05:00:00 +0000 (05:00 +0000)]
Generalize this optimization to work on equality comparisons between any two
integers that are constant except for a single bit (the same n-th bit in each).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90646
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 5 Dec 2009 02:46:03 +0000 (02:46 +0000)]
More updates to objectsize intrinsic docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90644
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 02:00:34 +0000 (02:00 +0000)]
Don't print a space before the : between the file name and line number.
And separate the directory and file name with a '/'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90641
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 5 Dec 2009 01:46:01 +0000 (01:46 +0000)]
Inline methods which are called only once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90640
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 5 Dec 2009 01:43:33 +0000 (01:43 +0000)]
Refactor some code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90639
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 01:42:34 +0000 (01:42 +0000)]
Print newlines after printing labels for debug info, so that the output
isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90638
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 01:29:04 +0000 (01:29 +0000)]
Don't blindly set the debug location for PHI node copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 01:27:58 +0000 (01:27 +0000)]
Make TargetSelectInstruction protected and called from FastISel.cpp
instead of SelectionDAGISel.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 00:44:40 +0000 (00:44 +0000)]
Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of
MachineBasicBlock::canFallThrough(), which is target-independent and more
thorough.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90634
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 00:32:59 +0000 (00:32 +0000)]
Simplify this code: don't call AnalyzeBranch before doing simpler checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90633
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 00:27:08 +0000 (00:27 +0000)]
The debug information for an LLVM Instruction applies to that Instruction
and that Instruction only. Implement this by setting the "current debug position"
back to Unknown after processing each instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Dec 2009 00:23:29 +0000 (00:23 +0000)]
Fix this code to use DIScope instead of DICompileUnit, as in r90181.
Don't print "SrcLine"; just print the filename and line number, which
is obvious enough and more informative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90631
91177308-0d34-0410-b5e6-
96231b3b80d8