- Feb 19, 2008
-
-
Evan Cheng authored
PR1909: Tail merging pass ran wild. It makes no sense to merge blocks in order to save a single instruction since a branch will be inserted for each BB. llvm-svn: 47301
-
Evan Cheng authored
llvm-svn: 47300
-
Ted Kremenek authored
CharacterLiterals. This may not be a permanent solution; it doesn't cost that much, however, to create a few additional states, and solves a whole bunch of edge cases when handling ?, ||, and &&. llvm-svn: 47299
-
Ted Kremenek authored
llvm-svn: 47298
-
Tanya Lattner authored
llvm-svn: 47297
-
Tanya Lattner authored
llvm-svn: 47296
-
Nate Begeman authored
allows you to do things like typedef __attribute__(( ocu_vector_type(4))) float float4; float4 *x; float y = x[0][2]; llvm-svn: 47295
-
Ted Kremenek authored
For now we just treat their values as "Unknown." llvm-svn: 47294
-
Ted Kremenek authored
an analyzed function. GRExprEngine now records stores to "uninitialized lvalues" (which are sinks in the ExplodedGraph). llvm-svn: 47293
-
Lauro Ramos Venancio authored
Fix Olden/bh test. llvm-svn: 47292
-
Evan Cheng authored
- When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. llvm-svn: 47290
-
Ted Kremenek authored
llvm-svn: 47289
-
- Feb 18, 2008
-
-
Ted Kremenek authored
UninitializedVals and UnknownVals. llvm-svn: 47288
-
Nick Lewycky authored
llvm-svn: 47287
-
Lauro Ramos Venancio authored
Fix McCat/08-main test. llvm-svn: 47286
-
Ted Kremenek authored
probably make this a separate command line option later. Added "--analyze-function" option to the driver to (gradually) allow different analyses to only be run on specific functions. Currently only --grsimple uses this option. llvm-svn: 47285
-
Ted Kremenek authored
We will implement symbol "unification" later. llvm-svn: 47284
-
Dan Gohman authored
on x86-32 since i64 itself is not a Legal type. And, update some comments. llvm-svn: 47282
-
Evan Cheng authored
- For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI). llvm-svn: 47281
-
Chris Lattner authored
llvm-svn: 47280
-
Nate Begeman authored
llvm-svn: 47279
-
Chris Lattner authored
llvm-svn: 47278
-
Dan Gohman authored
has plain one-result scalar integer multiplication instructions. This avoids expanding such instructions into MUL_LOHI sequences that must be special-cased at isel time, and avoids the problem with that code that provented memory operands from being folded. This fixes PR1874, addressesing the most common case. The uncommon cases of optimizing multiply-high operations will require work in DAGCombiner. llvm-svn: 47277
-
Chris Lattner authored
to Dale for noticing this! llvm-svn: 47276
-
Chris Lattner authored
llvm-svn: 47275
-
Chris Lattner authored
llvm-svn: 47274
-
Duncan Sands authored
requested by Chris. While there, do the same for an existing function committed by someone called "lattner" :) llvm-svn: 47273
-
Chris Lattner authored
llvm-svn: 47272
-
Dan Gohman authored
llvm-svn: 47271
-
Anders Carlsson authored
llvm-svn: 47270
-
Steve Naroff authored
Tweak fix for http://llvm.org/bugs/show_bug.cgi?id=2000 to work across typedefs. llvm-svn: 47269
-
Owen Anderson authored
that Object is an Argument before casting it to one. llvm-svn: 47268
-
Roman Levenstein authored
New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan. llvm-svn: 47267
-
Owen Anderson authored
Add support to GVN for performing sret return slot optimization. This means that, if an sret function tail calls another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects and optimizes that case. llvm-svn: 47265
-
Owen Anderson authored
llvm-svn: 47264
-
Owen Anderson authored
llvm-svn: 47263
-
Evan Cheng authored
For now, avoid commuting def MI for copy MI's whose source is not killed. That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. llvm-svn: 47262
-
Chris Lattner authored
this speeds it up 2.3% on eon. llvm-svn: 47261
-
Anders Carlsson authored
llvm-svn: 47260
-
Anders Carlsson authored
llvm-svn: 47259
-