Fariborz Jahanian
7b1b947ca1
twiks based on Chris's comment. No need to iterate thru a list of declarations
...
in a foreach-statement which is illegal (but not yet caught) .
llvm-svn: 45615
2008-01-05 01:40:08 +00:00
Chris Lattner
6ec78274df
fix a common crash.
...
llvm-svn: 45614
2008-01-05 01:39:17 +00:00
Chris Lattner
e666bc272d
remove a couple more unsafe xforms in the face of overflow.
...
llvm-svn: 45613
2008-01-05 01:22:42 +00:00
Chris Lattner
db026d703b
remove the (x-y) < 0 comparison xform, it miscompiles
...
things that are not equality comparisons, for example:
(2147479553+4096)-2147479553 < 0 != (2147479553+4096) < 2147479553
llvm-svn: 45612
2008-01-05 01:18:20 +00:00
Ted Kremenek
e84b32e506
Moved serialization code for ObjcForCollectionStmt to be in alphabetical order
...
with the rest of the Objective-C serialization code.
llvm-svn: 45609
2008-01-05 00:57:49 +00:00
Owen Anderson
3592b2352d
I should not be allowed to commit when sleepy.
...
llvm-svn: 45608
2008-01-05 00:48:55 +00:00
Owen Anderson
1984732f22
Didn't mean to commit this.
...
llvm-svn: 45607
2008-01-05 00:43:37 +00:00
Owen Anderson
cc35708bac
Didn't mean to commit this.
...
llvm-svn: 45606
2008-01-05 00:42:45 +00:00
Evan Cheng
f55b7381af
Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be moved if needed.
...
llvm-svn: 45605
2008-01-05 00:41:47 +00:00
Fariborz Jahanian
bad3218954
Minor refactoring of foreach's semantics code per Chris's suggetion.
...
llvm-svn: 45604
2008-01-04 23:59:09 +00:00
Owen Anderson
6bb0c52628
Move some more functionality from MRegisterInfo to TargetInstrInfo.
...
llvm-svn: 45603
2008-01-04 23:57:37 +00:00
Chris Lattner
881a212a70
unnest vector handling again.
...
llvm-svn: 45602
2008-01-04 23:32:24 +00:00
Fariborz Jahanian
e908cab389
Added a comment, minor refactoring of foreach parsing code per Chris's suggestion.
...
llvm-svn: 45601
2008-01-04 23:23:46 +00:00
Chris Lattner
f735409e11
we already test for exact type matches early, so we don't have to do
...
it explicitly for vectors. This allows us to unnest some code.
llvm-svn: 45600
2008-01-04 23:20:56 +00:00
Chris Lattner
a52c2f2e3e
simplify some of this code by removing the else/if chain and by
...
stripping down to canonical types early.
llvm-svn: 45599
2008-01-04 23:18:45 +00:00
Fariborz Jahanian
3622e5954b
Minor changes as suggested by Chris L.
...
llvm-svn: 45598
2008-01-04 23:04:08 +00:00
Chris Lattner
a3fc41d616
move objc expr sema to its own file.
...
llvm-svn: 45597
2008-01-04 22:32:30 +00:00
Bill Wendling
0c209430b4
Don't recalculate the loop info and loop dominators analyses if they're
...
preserved.
llvm-svn: 45596
2008-01-04 20:54:55 +00:00
Wojciech Matyjewicz
2bd541c5ff
fix typo
...
llvm-svn: 45595
2008-01-04 20:04:08 +00:00
Wojciech Matyjewicz
30e434569e
fix typo
...
llvm-svn: 45594
2008-01-04 20:02:18 +00:00
Chris Lattner
4899a6aa6a
Fix PR1897, patch by Wilhansen Li
...
llvm-svn: 45593
2008-01-04 19:12:28 +00:00
Chris Lattner
940cfebf90
add comments for the various AssignConvertType's, and split int->pointer from pointer->int.
...
llvm-svn: 45591
2008-01-04 18:22:42 +00:00
Chris Lattner
9bad62c72a
Merge all the 'assignment' diagnostic code into one routine, decloning
...
it from several places. This merges the diagnostics, making them more
uniform and fewer in number. This also simplifies and cleans up the code.
Some highlights:
1. This removes a bunch of very-similar diagnostics.
2. This renames AssignmentCheckResult -> AssignConvertType
3. This merges PointerFromInt + IntFromPointer which were always treated the same.
4. This updates a bunch of test cases that have minor changes to the produced diagnostics.
llvm-svn: 45589
2008-01-04 18:04:52 +00:00
Duncan Sands
d98c63ebb9
Testcase with non-integer "bitfields" (in quotes,
...
since they didn't actually need to be bitfields,
though they are marked as such).
llvm-svn: 45588
2008-01-04 17:31:56 +00:00
Chris Lattner
94cf8061e7
fix a build problem where NULL isn't implicitly defined by the headers this file includes.
...
llvm-svn: 45587
2008-01-04 16:27:03 +00:00
Gordon Henriksen
d829d2efeb
Fix a typo in llvm.mli noticed by Alain Frisch.
...
llvm-svn: 45585
2008-01-04 13:21:02 +00:00
Duncan Sands
99fc7197f2
Testcase for PR1386.
...
llvm-svn: 45583
2008-01-04 13:15:39 +00:00
Bill Wendling
46813c58bb
doc_code-ify some code in this doc.
...
llvm-svn: 45581
2008-01-04 12:04:32 +00:00
Gordon Henriksen
73d8967f02
Quote a path in the Ocaml makefile which is likely to include spaces on Windows.
...
llvm-svn: 45580
2008-01-04 11:55:57 +00:00
Evan Cheng
c1d1e54fc4
Unbreak tailcall opt in JIT.
...
llvm-svn: 45576
2008-01-04 10:50:28 +00:00
Evan Cheng
49ff8ecd03
X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.
...
llvm-svn: 45575
2008-01-04 10:46:51 +00:00
Bill Wendling
118ae4cd61
80-column violations.
...
llvm-svn: 45574
2008-01-04 08:59:18 +00:00
Bill Wendling
3bf5603ce4
Add that this preserves some analyses.
...
llvm-svn: 45573
2008-01-04 08:48:49 +00:00
Bill Wendling
66470d02c3
Move option to enable machine LICM into LLVMTargetMachine.cpp.
...
llvm-svn: 45572
2008-01-04 08:11:03 +00:00
Bill Wendling
d865697016
Call the parent's getAnalysisUsage.
...
llvm-svn: 45571
2008-01-04 07:50:05 +00:00
Chris Lattner
f3edc09f9b
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking.
...
It is missing validity checks, so it is known broken. However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
double Tmp = A*A+B*B;
*P = C ? Tmp : A;
}
into:
_test1:
movsd 8(%esp), %xmm0
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movsd 16(%esp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm0, (%eax)
ret
instead of:
_test1:
movsd 16(%esp), %xmm0
mulsd %xmm0, %xmm0
movsd 8(%esp), %xmm1
movapd %xmm1, %xmm2
mulsd %xmm2, %xmm2
addsd %xmm0, %xmm2
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movapd %xmm2, %xmm1
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm1, (%eax)
ret
woo.
llvm-svn: 45570
2008-01-04 07:36:53 +00:00
Chris Lattner
b5c1d9b7da
remove dead #includes and reorder the rest.
...
llvm-svn: 45569
2008-01-04 06:41:45 +00:00
Chris Lattner
bdd6acfb59
Fix PR1896
...
llvm-svn: 45568
2008-01-04 05:04:53 +00:00
Chris Lattner
69ea01446e
Change the builtin matcher to emit a decision tree, which should help out
...
the VC++ 'nesting depth' issue.
llvm-svn: 45567
2008-01-04 04:38:35 +00:00
Chris Lattner
43542b3a93
fix nesting issues.
...
llvm-svn: 45566
2008-01-04 04:34:14 +00:00
Chris Lattner
b8f816e90d
fix validation issues.
...
llvm-svn: 45565
2008-01-04 04:33:49 +00:00
Chris Lattner
7824d182da
improve the description of types, patch by Alain Frisch
...
llvm-svn: 45564
2008-01-04 04:32:38 +00:00
Chris Lattner
a47634ecb1
Don't let IntrinsicID be uninitialized if it doesn't match.
...
llvm-svn: 45563
2008-01-04 03:32:52 +00:00
Evan Cheng
2e1ba07f16
Correct order of parameters.
...
llvm-svn: 45562
2008-01-04 02:22:21 +00:00
Fariborz Jahanian
775d5d02af
Patch to add semantics check for ObjC2's foreacn statement.
...
llvm-svn: 45561
2008-01-04 00:27:46 +00:00
Chris Lattner
816dea2fc5
generalize some of the conversion warnings.
...
llvm-svn: 45560
2008-01-03 23:38:43 +00:00
Chris Lattner
166ae81be1
update for changes in diagnostic strings.
...
llvm-svn: 45559
2008-01-03 23:36:08 +00:00
Chris Lattner
874e024f10
regroup assignment-related diagnostics, fix a mistake in one.
...
llvm-svn: 45558
2008-01-03 23:13:36 +00:00
Bill Wendling
ddc77f8e4c
Remove the default else. This was ending in code that looked like this:
...
if (!strcmp(Target, "x86")) {
// ...
}
else
IntrinsicID = Intrinsic::not_intrinsic;
llvm-svn: 45557
2008-01-03 23:02:16 +00:00
Chris Lattner
0a788433eb
give better diagnostics for converting between function pointer and void*.
...
llvm-svn: 45556
2008-01-03 22:56:36 +00:00