- Nov 10, 2008
-
-
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: 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
-
Evan Cheng authored
llvm-svn: 58952
-
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
-
-
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
-
Anton Korobeynikov authored
and breaks llvm-gcc llvm-svn: 58926
-
- Nov 08, 2008
-
-
Oscar Fuentes authored
LLVMCellSPUCodeGen. llvm-svn: 58925
-
Oscar Fuentes authored
clean start. llvm-svn: 58924
-
Oscar Fuentes authored
llvm-svn: 58923
-
Scott Michel authored
structure. Assembly printer now outputs the correct section for strings. llvm-svn: 58921
-
Duncan Sands authored
llvm-svn: 58920
-
Anton Korobeynikov authored
FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? llvm-svn: 58917
-
Nicolas Geoffray authored
llvm-svn: 58908
-
Anton Korobeynikov authored
variable for it. This greatly reduces amount of unused variables in llvm2cpp-generated code llvm-svn: 58905
-
Evan Cheng authored
llvm-svn: 58899
-
Evan Cheng authored
llvm-svn: 58898
-
Evan Cheng authored
llvm-svn: 58897
-
Evan Cheng authored
llvm-svn: 58896
-
Evan Cheng authored
Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations. llvm-svn: 58895
-
Evan Cheng authored
llvm-svn: 58894
-
Evan Cheng authored
llvm-svn: 58893
-
Scott Michel authored
theframe size is 0; the prologue and epilogue should be emitted in this case. llvm-svn: 58890
-
Daniel Dunbar authored
promotion. - Eliminate uses after free and simplify tests. Devang: Please check that this is still doing what you intended. llvm-svn: 58887
-
Evan Cheng authored
llvm-svn: 58883
-
Evan Cheng authored
llvm-svn: 58882
-
Evan Cheng authored
llvm-svn: 58877
-
Dale Johannesen authored
llvm-svn: 58874
-
- Nov 07, 2008
-
-
Evan Cheng authored
llvm-svn: 58872
-
Dale Johannesen authored
This is Chris' patch from the PR, modified to realize that SETUGT/SETULT occur legitimately with integers, plus two fixes in LegalizeDAG to pass a valid result type into LegalizeSetCC. The argument of TLI.getSetCCResultType is ignored on PPC, but I think I'm following usage elsewhere. llvm-svn: 58871
-
Evan Cheng authored
llvm-svn: 58869
-
Evan Cheng authored
llvm-svn: 58868
-
Duncan Sands authored
the condition for a BRCOND, according to what is returned by getSetCCResultContents. Since all targets return the same thing (ZeroOrOneSetCCResult), this should be harmless! The point is that all over the place the result of SETCC is fed directly into BRCOND. On machines for which getSetCCResultContents returns ZeroOrNegativeOneSetCCResult, this is a sign-extended boolean. So it seems dangerous to also feed BRCOND zero-extended booleans in some circumstances - for example, when promoting the condition. llvm-svn: 58861
-
Dan Gohman authored
This is a temporary fix for the -print-emitted-asm option, where errs() is used as the stream, in the case where other code is using stderr without using errs()' buffer. Hopefully soon we'll fix errs() to be non-buffered instead. Patch by Preston Gurd. llvm-svn: 58859
-
Dale Johannesen authored
llvm-svn: 58856
-