Zhongxing Xu
a7907608fb
* API change: we need to pass GRState to GRExprEngine::EvalBinOp() because
...
RegionStore needs to know the type of alloca region.
* RegionStoreManager::EvalBinOp() now converts the alloca region to its first
element region, as what is done to symbolic region.
llvm-svn: 72164
2009-05-20 09:00:16 +00:00
Eli Friedman
9030c35eb4
Fix for PR4235: to build a floating-point value from integer parts,
...
build an integer and cast that to a float. This fixes a crash
caused by trying to split an f32 into two f16's.
This changes the behavior in test/CodeGen/XCore/fneg.ll because that
testcase now triggers a DAGCombine which converts the fneg into an integer
operation. If someone is interested, it's probably possible to tweak
the test to generate an actual fneg.
llvm-svn: 72162
2009-05-20 06:02:09 +00:00
Evan Cheng
1fbc2a4754
Fix test on non-darwin hosts.
...
llvm-svn: 72161
2009-05-20 05:45:36 +00:00
Evan Cheng
960983371c
Try again. Allow call to immediate address for ELF or when in static relocation mode.
...
llvm-svn: 72160
2009-05-20 04:53:57 +00:00
Eli Friedman
c21cb44de2
Handle the remaining unhandled cases in EmitReferenceBindingToExpr.
...
It would be nice if someone could write an ObjC++ testcase for the case
of passing a property returning a struct to a function taking a const
reference.
llvm-svn: 72159
2009-05-20 02:31:19 +00:00
Zhongxing Xu
050379b865
add header to be built by gcc 4.3 on Linux.
...
llvm-svn: 72158
2009-05-20 01:55:10 +00:00
Anders Carlsson
02bb7f0ac8
irgen for references to complex rvales (Very important...)
...
llvm-svn: 72157
2009-05-20 01:35:03 +00:00
Anders Carlsson
387f863dde
Bad anders.
...
llvm-svn: 72156
2009-05-20 01:27:39 +00:00
Anders Carlsson
ad007d44b6
Create a temporary if the lvalue is a bitfield. Reported by Eli.
...
llvm-svn: 72155
2009-05-20 01:24:22 +00:00
Evan Cheng
61da18645b
Cannot use immediate as call absolute target in PIC mode.
...
llvm-svn: 72154
2009-05-20 01:11:00 +00:00
Anders Carlsson
145eae5224
Add support for binding references to scalar rvalues.
...
llvm-svn: 72153
2009-05-20 01:03:17 +00:00
Dan Gohman
9cbf850506
Teach SCEV::isLoopInvariant and SCEV::hasComputableLoopEvolution
...
about the convention from LoopInfo that a null Loop* means the entire
function body.
llvm-svn: 72152
2009-05-20 01:01:24 +00:00
Owen Anderson
b9a4a57699
Add llvm_start_multithreaded(), which starts up the LLVM internals in thread-safe mode. Provide double-check locking
...
initialization of ManagedStatic's when running in thread-safe mode.
llvm-svn: 72151
2009-05-20 00:39:20 +00:00
Anders Carlsson
7d4c083c19
Bind references to lvalues correctly.
...
llvm-svn: 72150
2009-05-20 00:36:58 +00:00
Dan Gohman
7248923a5d
Suppress the IV reversal transformation in the case that the RHS
...
of the comparison is defined inside the loop. This fixes a
use-before-def problem, because the transformation puts a use
of the RHS outside the loop.
llvm-svn: 72149
2009-05-20 00:34:08 +00:00
Owen Anderson
414dc16ab9
We need to include config.h here so that the #defines are set properly.
...
llvm-svn: 72148
2009-05-20 00:31:29 +00:00
Anders Carlsson
6f5a015bd9
Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't support anything but at least we don't crash ;)
...
llvm-svn: 72147
2009-05-20 00:24:07 +00:00
Douglas Gregor
95fc37fd8f
Start documenting precompiled headers
...
llvm-svn: 72146
2009-05-20 00:16:32 +00:00
Douglas Gregor
68f1096212
Add FIXMEs for the remaining C and C++ expression types that still
...
need template instantiation logic. Remove one FIXME by instantiating
the callee in a non-type-dependent CXXOperatorCallExpr.
llvm-svn: 72145
2009-05-19 23:29:16 +00:00
Douglas Gregor
ad3150cd38
Template instantiation for __builtin_va_arg.
...
llvm-svn: 72144
2009-05-19 23:10:31 +00:00
Douglas Gregor
0df91121ba
Template instantiation for __builtin_choose_expr.
...
llvm-svn: 72143
2009-05-19 22:43:30 +00:00
Douglas Gregor
f907cbf634
Ban the use of __builtin_types_compatible_p in C++; g++ doesn't support it,
...
and it isn't clear exactly what it's supposed to mean. Thanks Eli!
llvm-svn: 72142
2009-05-19 22:28:02 +00:00
Owen Anderson
8cf4718fcd
Forgot this file in my last commit.
...
llvm-svn: 72141
2009-05-19 22:25:55 +00:00
Owen Anderson
af5db8335b
Split the ENABLE_THREADS #define in two. Now ENABLE_THREADS indicates the ability to run multiple threads at once in the JIT, and requires only
...
mutex support. LLVM_MULTITHREADED indicates (or will indicate) the ability to run LLVM itself across multiple threads, and requires atomics support.
llvm-svn: 72140
2009-05-19 22:18:56 +00:00
Douglas Gregor
c25f766065
Template instantiation for __builtin_shufflevector.
...
llvm-svn: 72139
2009-05-19 22:10:17 +00:00
Bob Wilson
335fa435dd
Fix pr4227: Handle large immediate values in inline assembly.
...
llvm-svn: 72138
2009-05-19 21:27:57 +00:00
Eli Friedman
ba4a4a012f
Remove finished FIXME.
...
llvm-svn: 72137
2009-05-19 21:17:33 +00:00
Eli Friedman
58ed0f2a80
Build fixes for r72135.
...
llvm-svn: 72136
2009-05-19 21:16:18 +00:00
Eli Friedman
5b5bd90a21
Move AnalysisConsumer.h and Analyses.def from tools/clang-cc to
...
include/clang/Frontend, and move AnalysisConsumer.cpp from
tools/clang-cc to lib/Frontend.
llvm-svn: 72135
2009-05-19 21:10:40 +00:00
Douglas Gregor
4b58ca02c5
Template instantiation for __builtin_types_compatible_p.
...
llvm-svn: 72134
2009-05-19 20:55:31 +00:00
Anders Carlsson
2d228cef50
Improve support for irgen of references.
...
llvm-svn: 72133
2009-05-19 20:40:02 +00:00
Dan Gohman
67587ce2e9
Remove an irrelevant comment.
...
llvm-svn: 72132
2009-05-19 20:38:47 +00:00
Dan Gohman
97f70add3c
Add some more comments to the top of this file.
...
llvm-svn: 72131
2009-05-19 20:37:36 +00:00
Dan Gohman
adc70d6806
Trim unneeded #includes.
...
llvm-svn: 72130
2009-05-19 20:35:26 +00:00
Douglas Gregor
8d7fef3cf2
Template instantiation for GNU statement expressions
...
llvm-svn: 72129
2009-05-19 20:31:21 +00:00
Douglas Gregor
115652db4a
Fix handling of the GNU "t ? : f" extension to the conditional
...
operator in C++, and verify that template instantiation for the
condition operator does the right thing.
llvm-svn: 72127
2009-05-19 20:13:50 +00:00
Douglas Gregor
3234db1e13
Template instantiation for compound assignment operators.
...
llvm-svn: 72126
2009-05-19 20:02:01 +00:00
Anders Carlsson
29a1be34b7
Only do the bitcast in EmitStoreOfScalar if the type is a boolean.
...
llvm-svn: 72125
2009-05-19 19:36:19 +00:00
Dan Gohman
d33a090efa
Make SCEVCallbackVH a private nested class inside ScalarEvolution, as
...
it's an implementation detail.
llvm-svn: 72122
2009-05-19 19:22:47 +00:00
Dan Gohman
7a97e933cd
Create ConstantExpr GEPs the correct way. This fixes
...
MultiSource/Benchmarks/Prolangs-C/football and a variety of other
failures.
llvm-svn: 72120
2009-05-19 19:18:01 +00:00
Douglas Gregor
71b6a37bc4
Template instantiation for cast expressions.
...
llvm-svn: 72119
2009-05-19 19:05:47 +00:00
Anders Carlsson
8370964257
Pass the destination QualType to EmitStoreOfScalar. No functionality change.
...
llvm-svn: 72118
2009-05-19 18:50:41 +00:00
Anders Carlsson
775640d248
Don't always zext the result of the not unary operator to an int.
...
llvm-svn: 72117
2009-05-19 18:44:53 +00:00
Bob Wilson
840e3281ff
Follow up on new support for memory operands in ARM inline assembly.
...
This fixes pr4233.
llvm-svn: 72115
2009-05-19 18:33:02 +00:00
Bill Wendling
670da9a22a
Forward decls.
...
llvm-svn: 72114
2009-05-19 17:52:31 +00:00
Bill Wendling
a3b8e84a57
Remove 'class' specifier.
...
llvm-svn: 72113
2009-05-19 17:51:26 +00:00
Bill Wendling
a8705a95a6
Fix to compile on VS2008.
...
llvm-svn: 72112
2009-05-19 17:50:18 +00:00
Fariborz Jahanian
960910a159
Patch finishes off application of printf attribute on blocks.
...
llvm-svn: 72111
2009-05-19 17:08:59 +00:00
Daniel Dunbar
018958d94d
Update test
...
llvm-svn: 72110
2009-05-19 16:09:59 +00:00
Duncan Sands
ca3a465b76
Add missing include for stderr and fprintf, needed
...
when compiling with gcc-4.4.
llvm-svn: 72109
2009-05-19 12:06:47 +00:00