Commit Graph

39383 Commits

Author SHA1 Message Date
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