- Nov 10, 2008
-
-
Mon P Wang authored
support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. llvm-svn: 59001
-
Steve Naroff authored
llvm-svn: 58997
-
Devang Patel authored
then do not split loop index. llvm-svn: 58995
-
Duncan Sands authored
where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). llvm-svn: 58994
-
Duncan Sands authored
llvm-svn: 58993
-
Duncan Sands authored
llvm-svn: 58992
-
Duncan Sands authored
inform the optimizers that the result must be zero/ sign extended from the smaller type. For example, if a fp to unsigned i16 is promoted to fp to i32, then we are allowed to assume that the extra 16 bits are zero (because the result of fp to i16 is undefined if the result does not fit in an i16). This is quite aggressive, but should help the optimizers produce better code. This requires correcting a test which thought that fp_to_uint is some kind of truncation, which it is not: in the testcase (which does fp to i1), either the fp value converts to 0 or 1 or the result is undefined, which is quite different to truncation. llvm-svn: 58991
-
Duncan Sands authored
llvm-svn: 58984
-
Anton Korobeynikov authored
Patch by Jim Grosbach! llvm-svn: 58981
-
Dale Johannesen authored
llvm-svn: 58980
-
Dale Johannesen authored
Fixes ppc32 bootstrap. llvm-svn: 58979
-
Bill Wendling authored
The previous patches didn't match correctly. Also, we need to make sure that the conditional is the same before doing the transformation. llvm-svn: 58978
-
Chris Lattner authored
llvm-svn: 58966
-
Mon P Wang authored
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
-
Chris Lattner authored
llvm-svn: 58963
-
Chris Lattner authored
string in the .ll and .s printers. llvm-svn: 58962
-
Chris Lattner authored
helper. This allows us to convert numbers to hex without necessarily needing to make a std::string to hold the result. llvm-svn: 58961
-
Chris Lattner authored
implementation detail of DIFactory anyway, and this allows it to avoid recomputing the same type over and over. llvm-svn: 58960
-
Chris Lattner authored
an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. llvm-svn: 58959
-
Chris Lattner authored
llvm-svn: 58958
-
Chris Lattner authored
release-asserts build: llvm/CodeGen/SelectionDAGNodes.h:1298: warning: control may reach end of non-void function 'unsigned int llvm::MVT::getSizeInBits() const' being inlined what an unhelpful warning. llvm-svn: 58957
-
Chris Lattner authored
llvm-svn: 58955
-
Chris Lattner authored
information. This logically replaces the "Desc" classes in MachineModuleInfo. Nice features of these classes are that they: 1. Are much more efficient than MMI because they don't create a temporary parallel data structure for debug info that has to be 'serialized' and 'deserialized' into/out of the module. 2. These provide a much cleaner abstraction for debug info than MMI, which will make it easier to change the implementation in the future (to be MDNode-based). 3. These are much easier to use than the MMI interfaces, requiring a lot less code in the front-ends. 4. These can be used to both create (for frontends) and read (for codegen) debug information. DebugInfoBuilder can only be used to create the nodes. So far, this is implemented just enough to support the debug info generation needs of clang. This can and should be extended to support the full set of debug info constructs, and we should switch llvm-gcc and llc over to using this in the near future. This code also has a ton of FIXMEs in it, because the way we currently represent debug info in LLVM IR is basically insane in a variety of details. This sort of issue should be fixed when we eventually reimplement debug info on top of MDNodes. llvm-svn: 58954
-
Oscar Fuentes authored
set LLVM_TABLEGEN. llvm-svn: 58953
-
Evan Cheng authored
llvm-svn: 58952
-
Oscar Fuentes authored
that specified targets are known. llvm-svn: 58951
-
Oscar Fuentes authored
cross-compiling. llvm-svn: 58950
-
Evan Cheng authored
llvm-svn: 58949
-
Bill Wendling authored
of the select match, not the select instruction itself. llvm-svn: 58947
-
Bill Wendling authored
original code was matching like this: if (match(A, m_Not(m_Value(B)))) B was already matched as a 'select' instruction. However, this isn't matching what we think it's matching. It would match B as a 'Value', so basically anything would match to it. In this case, a Constant matched. B was replaced with a constant representation. And then the wrong value would be used in the SelectInst::Create statement, causing a crash. After thinking on this for a moment, and after Nick L. told me how the pattern matching stuff was supposed to work, the solution was to match NOT an m_Value, but an m_Select. llvm-svn: 58946
-
- Nov 09, 2008
-
-
Oscar Fuentes authored
llvm-svn: 58941
-
Oscar Fuentes authored
built native tblgen which is passed to cmake in the variable LLVM_TABLEGEN. See http://www.cmake.org/Wiki/CmakeMingw for a quick example on how to cross-compile with CMake. llvm-svn: 58939
-
Chris Lattner authored
llvm-svn: 58938
-
Duncan Sands authored
llvm-svn: 58934
-
Nuno Lopes authored
llvm-svn: 58933
-
Dale Johannesen authored
xs llvm-svn: 58930
-
Bill Wendling authored
to generate signed ICMP instructions to replace the FCMP. This would violate the following: define i1 @test1(i32 %val) { %1 = uitofp i32 %val to double %2 = fcmp ole double %1, 0.000000e+00 ret i1 %2 } would be transformed into: define i1 @test1(i32 %val) { %1 = icmp slt i33 %val, 1 ret i1 %1 } which is obviously wrong. This patch modifes InstCombiner::FoldFCmp_IntToFP_Cst to handle when the LHS comes from UIToFP. llvm-svn: 58929
-
Anton Korobeynikov authored
llvm-svn: 58928
-
Scott Michel authored
llvm-svn: 58927
-
Anton Korobeynikov authored
and breaks llvm-gcc llvm-svn: 58926
-