Duncan Sands
38ef3a8ec7
Rather than having special rules like "intrinsics cannot
...
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
2007-12-03 20:06:50 +00:00
Chris Lattner
19970e62e7
update file comment.
...
llvm-svn: 44543
2007-12-03 19:43:18 +00:00
John Criswell
9c9405f4ef
Fixed typo.
...
llvm-svn: 44542
2007-12-03 19:34:25 +00:00
Anton Korobeynikov
c09b265410
Regenerate
...
llvm-svn: 44541
2007-12-03 19:17:47 +00:00
Fariborz Jahanian
9e7b848ac8
Added support for messagings which return a structure-value.
...
(Also fixed a regression caused by recent changes to synthesis of structs).
llvm-svn: 44540
2007-12-03 19:17:29 +00:00
Devang Patel
bd75910fa7
If ExitValue operand is also defined in Loop header then
...
insert new ExitValue after this operand definition.
This fixes PR1828.
llvm-svn: 44539
2007-12-03 19:17:21 +00:00
Anton Korobeynikov
d62b10dc93
More sanity checks for function types.
...
Thanks goes to PyPy folks for generating broken stuff :)
llvm-svn: 44538
2007-12-03 19:16:54 +00:00
Chris Lattner
b39e02bcc2
Describe the notion of 'owners' of the code.
...
llvm-svn: 44537
2007-12-03 19:00:47 +00:00
Ted Kremenek
d85026d925
Added getTrueExpr() and getFalseExpr() to ConditionalOperator. These methods
...
provide handy accessors to the subexpressions of ConditionalOperator that
automatically take into account the GCC extension where the "LHS" expression is
omitted: e.g x ?: y;. When the LHS expression is available, getTrueExpr() is the
same as getLHS(); when LHS is NULL, getTrueExpr() returns the condition expression.
llvm-svn: 44536
2007-12-03 17:09:21 +00:00
Gordon Henriksen
4814cd2271
Applying Anton's binmode fix to the other ofstream too.
...
llvm-svn: 44535
2007-12-03 14:50:37 +00:00
Anton Korobeynikov
bf96d99383
Sorry, typo :)
...
llvm-svn: 44534
2007-12-03 14:35:57 +00:00
Anton Korobeynikov
7c5442b0e3
Open output file correctly. This is extremely important for
...
windows-based hosts, where files are opened in text mode by default.
llvm-svn: 44533
2007-12-03 14:28:26 +00:00
Evan Cheng
196faa9dc5
Typo
...
llvm-svn: 44532
2007-12-03 10:00:00 +00:00
Evan Cheng
85ef9834a6
Update kill info for uses of split intervals.
...
llvm-svn: 44531
2007-12-03 09:58:48 +00:00
Bill Wendling
db4e34984b
Fix for testcase that assigns a dereferenced reference to a pointer. The
...
standard says that we should adjust the "reference to T" type to "T"
before analysis.
llvm-svn: 44530
2007-12-03 07:33:35 +00:00
Seo Sanghyeon
3d072bea09
Ignore typedefs in pointer arithmetic codegen.
...
llvm-svn: 44529
2007-12-03 06:23:43 +00:00
Anton Korobeynikov
9050bd1f68
Provide hook for _alloca to make JITing on Cygwin slightly happier :)
...
llvm-svn: 44528
2007-12-03 05:30:41 +00:00
Nick Lewycky
9746782cea
lli -trace was removed back in 2003.
...
llvm-svn: 44527
2007-12-03 01:58:01 +00:00
Nick Lewycky
d93847a96a
Type::IntTy hasn't existed for a while. Just sub in Type::Int32Ty.
...
llvm-svn: 44526
2007-12-03 01:52:52 +00:00
Anders Carlsson
5dd106b212
Handle initializing vector elements correctly. Emit just one warning if there are excess initializers, instead of one per initializer.
...
llvm-svn: 44525
2007-12-03 01:01:28 +00:00
Chris Lattner
4b6d965611
explain what I need to grant commit access.
...
llvm-svn: 44524
2007-12-03 00:36:20 +00:00
Chris Lattner
6e4f047422
add a fixme
...
llvm-svn: 44523
2007-12-02 23:05:46 +00:00
Chris Lattner
b4ef023bf6
fix typo noticed by Joshua Pennington
...
llvm-svn: 44522
2007-12-02 22:46:01 +00:00
Anders Carlsson
ef93b9d011
Implement __builtin_bswap32 and __builtin_bswap64.
...
llvm-svn: 44521
2007-12-02 21:58:10 +00:00
Chris Lattner
4e4186b2de
fix logic for member expr codegen.
...
llvm-svn: 44520
2007-12-02 18:52:07 +00:00
Seo Sanghyeon
828429fea9
Fix isStructureType and isUnionType to ignore typedefs, as stated
...
in the header. Patch by Cédric Venet.
llvm-svn: 44519
2007-12-02 16:57:27 +00:00
Christopher Lamb
0cbd8723f3
Treat discarding array initializer elements as an extwarn (so -pedantic-errors flags it). Allow CodeGen to truncate the initializer if needed.
...
llvm-svn: 44518
2007-12-02 08:49:54 +00:00
Evan Cheng
f45a1d623c
Remove redundant foldMemoryOperand variants and other code clean up.
...
llvm-svn: 44517
2007-12-02 08:30:39 +00:00
Chris Lattner
310369fb84
restore these lines, which fixes some regtest failures.
...
llvm-svn: 44516
2007-12-02 07:50:03 +00:00
Chris Lattner
6311b58000
all filevar's have static storage. Previously a global with
...
extern storage class was returning false from hasStaticStorage.
Ted, please review this.
llvm-svn: 44515
2007-12-02 07:47:49 +00:00
Christopher Lamb
39aeb4069b
Commit test for CL 44440.
...
llvm-svn: 44514
2007-12-02 07:47:19 +00:00
Chris Lattner
e4f0feb534
Fix buggy test
...
llvm-svn: 44513
2007-12-02 07:46:00 +00:00
Chris Lattner
0475c8178f
globals can't be vla's
...
llvm-svn: 44512
2007-12-02 07:32:25 +00:00
Chris Lattner
d8d18d561e
add codegen support for global inits that require array decay.
...
llvm-svn: 44511
2007-12-02 07:30:13 +00:00
Chris Lattner
d45aa2a03b
warn about unhandled initializers instead of crashing on them.
...
llvm-svn: 44510
2007-12-02 07:19:18 +00:00
Chris Lattner
5bcdf24a50
Handle global variable definitions which change the type of a definition, such as:
...
extern int x[];
void foo() { x[0] = 1; }
int x[10];
void bar() { x[0] = 1; }
llvm-svn: 44509
2007-12-02 07:09:19 +00:00
Chris Lattner
c48023bd5b
remove the alloca insertion point inst, which is an internal helper.
...
llvm-svn: 44508
2007-12-02 06:32:24 +00:00
Chris Lattner
6d27513f6e
merge the llvm global variable when there are multiple C decls.
...
llvm-svn: 44507
2007-12-02 06:30:46 +00:00
Chris Lattner
41af8182d8
implement codegen for functions whose function body type don't match
...
their prototype.
llvm-svn: 44506
2007-12-02 06:27:33 +00:00
Chris Lattner
c5b3aab66b
merge functions with multiple function decls if they have the same name.
...
llvm-svn: 44505
2007-12-02 05:56:05 +00:00
Chris Lattner
e15d0dd63f
Teach clang the prototype for __builtin_alloca.
...
llvm-svn: 44504
2007-12-02 05:42:36 +00:00
Chris Lattner
f0780fae43
convert the rest of the stderr users in codegen to use diagnostics.
...
llvm-svn: 44503
2007-12-02 01:49:16 +00:00
Chris Lattner
fc94434faf
move unsupported warning into a centralized place.
...
llvm-svn: 44502
2007-12-02 01:43:38 +00:00
Chris Lattner
c8dbe1e5d6
Warn about unsupported codegen with the diags machinery, giving us:
...
t.c:3322:5: warning: cannot codegen this yet
__asm__ ("bswap %0" : "+r" (_data));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instead of:
Unimplemented stmt!
(AsmStmt 0x80eaa0 <t.c:3331:5, line:3334:28>)
llvm-svn: 44501
2007-12-02 01:40:18 +00:00
Chris Lattner
963540dc28
register clz and ctz builtins.
...
llvm-svn: 44500
2007-12-02 01:20:23 +00:00
Chris Lattner
f3a59a1fb8
fix a crash when the rewriter would scan off the beginning of the file.
...
llvm-svn: 44499
2007-12-02 01:13:47 +00:00
Chris Lattner
e6535cfdd2
add support for custom client-specific diagnostics. As a testcase, make the
...
rewriter emit this error if it fails to rewrite an @encode:
t.m:17:9: error: rewriter could not replace sub-expression due to macros
c = ENC(char *)[2] + 4;
^~~~~~~~~~~
... where ENC is: #define ENC @encode
llvm-svn: 44498
2007-12-02 01:09:57 +00:00
Oliver Hunt
a96fe8d5c5
Add support for __builtin_expect which is needed for assert,
...
among other things.
Also change a codegen warning to dump to stderr so it doesn't
mess with -emit-llvm output
llvm-svn: 44497
2007-12-02 01:03:24 +00:00
Chris Lattner
9724ce12f9
improve VC++ compatibility, patch by Cédric Venet.
...
llvm-svn: 44496
2007-12-02 00:47:03 +00:00
Oliver Hunt
aefc8fd415
Support initalisers for more than just int-typed static variables.
...
We now use the CodeGenModule logic for generating the constant
initialiser expression, so happily further initialiser fixes should
automatically work for statics as well.
llvm-svn: 44495
2007-12-02 00:11:25 +00:00