- Jun 22, 2007
-
-
Chris Lattner authored
llvm-svn: 39670
-
Chris Lattner authored
void test(int A, _Complex float Y) { _Complex float X; X = X; } llvm-svn: 39669
-
Chris Lattner authored
llvm-svn: 39668
-
Chris Lattner authored
llvm-svn: 39667
-
- Jun 20, 2007
-
-
Chris Lattner authored
One major FIXME though. llvm-svn: 39666
-
Chris Lattner authored
llvm-svn: 39665
-
Chris Lattner authored
llvm-svn: 39664
-
Chris Lattner authored
int X, bar(int,int,int); short Y; double foo() { return bar(X, Y, 3); } into: @X = external global i32 ; <i32*> [#uses=1] @Y = external global i16 ; <i16*> [#uses=1] define double @foo() { entry: %tmp = load i32* @X ; <i32> [#uses=1] %tmp1 = load i16* @Y ; <i16> [#uses=1] %promote = sext i16 %tmp1 to i32 ; <i32> [#uses=1] %call = tail call i32 @bar( i32 %tmp, i32 %promote, i32 3 ) ; <i32> [#uses=1] %conv = sitofp i32 %call to double ; <double> [#uses=1] ret double %conv } declare i32 @bar(i32, i32, i32) llvm-svn: 39663
-
- Jun 16, 2007
-
-
Chris Lattner authored
llvm-svn: 39662
-
Chris Lattner authored
and globals. llvm-svn: 39661
-
Chris Lattner authored
is ready. llvm-svn: 39660
-
Chris Lattner authored
out of the llvm namespace. This makes the clang namespace be a sibling of llvm instead of being a child. The good thing about this is that it makes many things unambiguous. The bad things is that many things in the llvm namespace (notably data structures like smallvector) now require an llvm:: qualifier. IMO, libsystem and libsupport should be split out of llvm into their own namespace in the future, which will fix this issue. llvm-svn: 39659
-
- Jun 15, 2007
-
-
Chris Lattner authored
double foo( int (*FP)(int, int, int)) { return FP(1, 2, 3); } to: define double @foo(i32 (i32, i32, i32)* %FP) { entry: %call = tail call i32 %FP( i32 1, i32 2, i32 3 ) %conv = sitofp i32 %call to double ret double %conv } llvm-svn: 39658
-
Bill Wendling authored
Reviewed by: Chris Lattner - Refactor some code from main() and ProcessInputFile() so that it helps to decouple the initialization of the Preprocessor object from the diagnostic client. llvm-svn: 39657
-
Chris Lattner authored
llvm-svn: 39656
-
Chris Lattner authored
llvm-svn: 39655
-
- Jun 13, 2007
-
-
Steve Naroff authored
Submitted by: Reviewed by: Fix CheckRelationalOperands/CheckEqualityOperands to deal with null pointer constants. The new logic also deals (more) correctly for non-pointer/integer operands. llvm-svn: 39654
-
Chris Lattner authored
llvm-svn: 39653
-
Chris Lattner authored
int test(int X, short Y, float Z) { return (int)(X*Y+Z); } to: define i32 @test(i32 %X, i16 %Y, float %Z) { entry: %promote = sext i16 %Y to i32 ; <i32> [#uses=1] %mul = mul i32 %promote, %X ; <i32> [#uses=1] %promote3 = sitofp i32 %mul to float ; <float> [#uses=1] %add = add float %promote3, %Z ; <float> [#uses=1] %conv = fptosi float %add to i32 ; <i32> [#uses=1] ret i32 %conv } with: $ clang -emit-llvm t.c | llvm-as | opt -std-compile-opts | llvm-dis llvm-svn: 39652
-
Chris Lattner authored
llvm-svn: 39651
-
Bill Wendling authored
Reviewed by: Chris Lattner - Created a base class (TextDiagnostics) for all text diagnostic classes. Moved the "IgnoreDiagnostic" method up there, and created a method that will format the diagnostic string, replacing %# with the appropriate string. This is in preparation for adding a text diagnostic checker. llvm-svn: 39650
-
Steve Naroff authored
Submitted by: Reviewed by: Fixed typechecking bugs wrt UsualUnaryConversions. Includes two distinct fixes: #1: Call UsualUnaryConversions in CheckRelationalOperands/CheckEqualityOperands. #2: UsualArithmeticConversions arguments are now output parameters. This insures the implicit conversion is seen by clients (and fixes bugs in CheckAdditionOperands and CheckSubtractionOperands when doing pointer arithmetic). ~ llvm-svn: 39649
-
- Jun 12, 2007
-
-
Chris Lattner authored
void printutf8(unsigned int X) { if (X <= 127) printf("%c", (char)X); else if (X <= 2047) printf("%d %d ", 128 + 64 + (X >> 6), 128 + (X & ((1 << 6) - 1))); else if (X <= 65535) printf("%c%c%c", 128 + 64 + 32 + (X >> 12), 128 + ((X >> 6) & 63), 128 + (X & 63)); else printf("UNKNOWN %d\n", X); instead of: if (X <= 127) printf("%c", (char)X); else if (X <= 2047) printf("%d %d ", 128 + 64 + (X >> 6), 128 + (X & ((1 << 6) - 1))); else if (X <= 65535) printf("%c%c%c", 128 + 64 + 32 + (X >> 12), 128 + ((X >> 6) & 63), 128 + (X & 63)); else printf("UNKNOWN %d\n", X); llvm-svn: 39648
-
- Jun 11, 2007
-
-
Chris Lattner authored
llvm-svn: 39647
-
Chris Lattner authored
llvm-svn: 39646
-
Chris Lattner authored
llvm-svn: 39645
-
Chris Lattner authored
llvm-svn: 39644
-
Steve Naroff authored
Submitted by: Reviewed by: Implement semantic analysis for vector_size attribute! We now produce the following diagnostics... [administrators-powerbook59:~/llvm/tools/clang] admin% ../../Debug/bin/clang vector.c vector.c:2:29: error: attribute requires precisely 1 argument typedef int __attribute__(( vector_size )) tVecp; ^ vector.c:7:32: error: attribute requires precisely 1 argument extern int foo __attribute__(( vector_size )); ^ vector.c:8:34: error: attribute requires precisely 1 argument extern float bar __attribute__(( vector_size(16,18) )); ^ vector.c:11:34: error: vector_size requires integer constant (attribute ignored) extern char foo2 __attribute__(( vector_size(16.2) )); ^ ~~~~ vector.c:21:47: error: invalid vector type 'struct s' struct s { int a; } structVar __attribute__(( vector_size(16) )); llvm-svn: 39643
-
Chris Lattner authored
static int seminal(from, to) { } llvm-svn: 39642
-
- Jun 10, 2007
-
-
Bill Wendling authored
Reviewed by: Chris Lattner - Added a method "IgnoreDiagnostic" so that the diagnostic client can tell the diagnostic object that it doesn't want to handle a particular diagnostic message. In which case, it won't be counted as either a diagnostic or error. llvm-svn: 39641
-
Steve Naroff authored
Submitted by: Reviewed by: Changed the name of DeclSpec.AddAttribute and Declarator.AddAttribute to AddAttributes(). Also added some (much needed) comments. While documenting, realized I could simplify & tighten up Declarator.AddAttributes... llvm-svn: 39640
-
- Jun 09, 2007
-
-
Steve Naroff authored
Submitted by: Reviewed by: Add initialization and memory management for AttributeList. Added a big FIXME comment for handling expressions (which are currently leaked). llvm-svn: 39639
-
Chris Lattner authored
void foo() { "\0"; } llvm-svn: 39638
-
Chris Lattner authored
llvm-svn: 39637
-
Chris Lattner authored
a // comment, this reduces noise in the llvm testsuite. llvm-svn: 39636
-
Chris Lattner authored
llvm-svn: 39635
-
Chris Lattner authored
llvm-svn: 39634
-
Chris Lattner authored
2005-10-18-VariableSizedElementCrash.c:5:41: warning: expected ';' at end of declaration list struct bar {foo f1; int f2:3; int f3:4} *p = (struct bar *) pi; ^ llvm-svn: 39633
-
Chris Lattner authored
e.g.: struct A { ; int X;; const; }; llvm-svn: 39632
-
Steve Naroff authored
Submitted by: Reviewed by: Incorporate some feedback from Chris. Fixed a crasher, added an assert. llvm-svn: 39631
-