- Jun 01, 2008
-
-
Owen Anderson authored
llvm-svn: 51846
-
Owen Anderson authored
llvm-svn: 51845
-
Duncan Sands authored
the conditions for performing the transform when only the function declaration is available: no longer allow turning i32 into i64 for example. Only allow changing between pointer types, and between pointer types and integers of the same size. For return values ptr -> intptr was already allowed; I added ptr -> ptr and intptr -> ptr while there. As shown by a recent objc testcase, changing the way parameters/return values are passed can be fatal when calling code written in assembler that directly manipulates call arguments and return values unless the transform has no impact on the way they are passed at the codegen level. While it is possible to imagine an ABI that treats integers of pointer size differently to pointers, I don't think LLVM supports any so the transform should now be safe while still being useful. llvm-svn: 51834
-
Bruno Cardoso Lopes authored
llvm-svn: 51833
-
- May 31, 2008
-
-
Dan Gohman authored
now round-trip through assembly and bitcode. llvm-svn: 51823
-
Dan Gohman authored
llvm-svn: 51822
-
Dan Gohman authored
llvm-svn: 51820
-
Nick Lewycky authored
llvm-svn: 51819
-
Nick Lewycky authored
llvm-svn: 51818
-
Nick Lewycky authored
llvm-svn: 51817
-
Nick Lewycky authored
llvm-svn: 51816
-
Chris Lattner authored
we did not truncate the value down to i1 with (x&1). This caused a problem when the computation of x was nontrivial, for example, "add i1 1, 1" would return 2 instead of 0. This makes the testcase compile into: ... llvm_cbe_t = (((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u))&1); llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t)); ... instead of: ... llvm_cbe_t = ((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u)); llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t)); ... This fixes a miscompilation of mediabench/adpcm/rawdaudio/rawdaudio and 403.gcc with the CBE, regressions from LLVM 2.2. Tanya, please pull this into the release branch. llvm-svn: 51813
-
Dan Gohman authored
getSwappedPredicate, from ICmpInst and FCmpInst into common methods in CmpInst. This allows CmpInsts to be manipulated generically. llvm-svn: 51810
-
Dan Gohman authored
index for the input pattern in terms of the output pattern. Instead keep track of how many fixed operands the input pattern actually has, and have the input matching code pass the output-emitting function that index value. This simplifies the code, disentangles variables_ops from the support for predication operations, and makes variable_ops more robust. llvm-svn: 51808
-
Dan Gohman authored
llvm-svn: 51807
-
Dan Gohman authored
insertvalue and extractvalue to use constant indices instead of Value* indices. And begin updating LangRef.html. There's definately more to come here, but I'm checking this basic support in now to make it available to people who are interested. llvm-svn: 51806
-
Evan Cheng authored
llvm-svn: 51793
-
Evan Cheng authored
llvm-svn: 51792
-
Owen Anderson authored
llvm-svn: 51790
-
- May 30, 2008
-
-
Gabor Greif authored
llvm-svn: 51789
-
Owen Anderson authored
Preserve the register coallescer, and update live intervals more correctly by triggering a renumbering after phi elimination. llvm-svn: 51780
-
Owen Anderson authored
Since LCSSA switched over to DenseMap, we have to be more careful to avoid iterator invalidation. Fixes PR2385. llvm-svn: 51777
-
Matthijs Kooijman authored
once (ie, at two different places in the source, not two times on the commandline). llvm-svn: 51771
-
Matthijs Kooijman authored
llvm-svn: 51770
-
Matthijs Kooijman authored
insertvalue / extractvalue instructions. llvm-svn: 51766
-
Bill Wendling authored
llvm-svn: 51761
-
Dan Gohman authored
llvm-svn: 51721
-
Dan Gohman authored
llvm-svn: 51718
-
Dan Gohman authored
llvm-svn: 51717
-
Owen Anderson authored
Make the renumbering correct in the face of deleted instructions that have been removed from the LiveIntervals maps. llvm-svn: 51714
-
Bill Wendling authored
llvm-svn: 51709
-
- May 29, 2008
-
-
Dan Gohman authored
cases due to an isel deficiency already noted in lib/Target/X86/README.txt, but they can be matched in this fold-call.ll testcase, for example. This is interesting mainly because it exposes a tricky tblgen bug; tblgen was incorrectly computing the starting index for variable_ops in the case of a complex pattern. llvm-svn: 51706
-
Bill Wendling authored
function to flush a specified std::ostream. llvm-svn: 51705
-
Bill Wendling authored
llvm-svn: 51704
-
Owen Anderson authored
llvm-svn: 51701
-
Dan Gohman authored
definitions. This adds a new construct, "discard", for indicating that a named node in the input matching pattern is to be discarded, instead of corresponding to a node in the output pattern. This allows tblgen to know where the arguments for the varaible_ops are supposed to begin. This fixes "rdar://5791600", whatever that is ;-). llvm-svn: 51699
-
Dan Gohman authored
llvm-svn: 51698
-
Dan Gohman authored
memmove to a more plausible value, now that it's actually being used. llvm-svn: 51696
-
Owen Anderson authored
llvm-svn: 51694
-
Owen Anderson authored
Renumbering needs to account for instruction slot offsets when performing lookups in the index maps. llvm-svn: 51691
-