search for: structretpromotion

Displaying 10 results from an estimated 10 matches for "structretpromotion".

2008 May 08
2
[LLVMdev] StructRetPromotion and linkage
Hi all, I was looking at the StructRetPromotion pass this morning and noticed it doesn't look at a function's linkage at all. Since it changes the signature of the function, I would say it should only change internal functions, like ArgumentPromotion does for example. Is there some implicit check I'm missing, or should an explicit c...
2008 May 08
2
[LLVMdev] Missing passes
...t > job and updates Passes.html as follows. Thanks, applied! http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080505/062161.html The passes for which you updated the comments are primarily written by: Chris: lib/Transforms/IPO/StripDeadPrototypes.cpp Devang: lib/Transforms/IPO/StructRetPromotion.cpp Chris: lib/Transforms/Scalar/CodeGenPrepare.cpp Chris/Evan: lib/Transforms/Scalar/JumpThreading.cpp Chris: lib/Transforms/Scalar/LoopDeletion.cpp Who should probably review the added comments for accuracy. — Gordon
2008 Jul 21
0
[LLVMdev] Structs as first class values.
...> interim solution. I would like not to clutter my front end with stuff > that will go away. How about a pass that runs before code generation > that changes functions returning structs to void functions with the > return pointer first parameter? On this topic, you should look at the StructRetPromotion pass (lib/Transforms/IPO/StructRetPromotion.cpp). This pass does exactly the opposite of what you propose: It transforms return pointers in the first parameter to first class returns. This pass only operates on internal functions, though, so it does not have to deal with ABI issues. If you want to...
2008 Jul 21
3
[LLVMdev] Structs as first class values.
Chris Lattner wrote: > On Jul 20, 2008, at 10:59 AM, Richard Pennington wrote: > I'm sure the implementation will take the same approach, but it won't > necessarily be ABI compatible. I don't know enough to say at this > point... it may end up being ABI compatible or not depending on > implementation details. Hi Chris, I was thinking about my problem and thought
2008 Jun 04
1
[LLVMdev] Status of the 2.3 release - volunteers needed.
...8 @cexp({double, double}* byval) nounwind > > It used to be this: > > declare void @cexp({double, double}* noalias sret, {double, double}* > byval) nounwind The promotion from a void function with an sret argument to a function returning multiple values is probably performed by StructRetPromotion (some grepping around the source suggests that no other pass actually looks at sret parameters). However, I'm not sure what replaces that struct of two doubles by a single i128. I think ScalarReplAggregrates is capable of doing such packing, but it only operates on local variables, not return...
2008 May 08
0
[LLVMdev] Missing passes
...r select instructions to branches (-lowerselect) lowers packed operations to operations on smaller packed datatypes (-lower-packed) (I didn't report the last one in my initial posting, though I had noticed it was missing). I've added the following passes to the documentation: > createStructRetPromotionPass() > createStripDeadPrototypesPass() > createJumpThreadingPass() > createMemCpyOptPass() > createLoopDeletionPass() > createCodeGenPreparePass() I've left out the Global Value Extraction Pass, since that doesn't seem to be a full pass in itself (no RegisterPass for e...
2008 Jun 04
0
[LLVMdev] Status of the 2.3 release - volunteers needed.
On Jun 2, 2008, at 11:11 PM, Tanya Lattner wrote: > Darwin/ppc: > SingleSource/Benchmarks/CoyoteBench/fftbench [ CBE ] > From what I can see comparing 2.3 with TOT, the "cexp" function is declared like this in 2.3: declare i128 @cexp({double, double}* byval) nounwind It used to be this: declare void @cexp({double, double}* noalias sret, {double, double}* byval)
2008 May 07
4
[LLVMdev] Missing passes
...for. Where these removed? Lower GC intrinsics, for GCless code generators (-lowergc) Correlated Expression Elimination (-cee) Lower select instructions to branches (-lowerselect) Additionally, I found the following passes for which no documentation was present: createGVExtractionPass() createStructRetPromotionPass() createStripDeadPrototypesPass() createJumpThreadingPass() createMemCpyOptPass() createLoopDeletionPass() createCodeGenPreparePass() From what I saw in Passes.html, the passes documentation is not generated automatically? What's the policy on updating this documentation? Gr. Matthi...
2008 Mar 26
1
[LLVMdev] PATCH: Use size reduction -- wave1
...p U lib/Transforms/Scalar/SCCP.cpp U lib/Transforms/Scalar/LoopRotation.cpp U lib/Transforms/Scalar/GVN.cpp U lib/Transforms/Scalar/ADCE.cpp U lib/Transforms/IPO/IndMemRemoval.cpp U lib/Transforms/IPO/SimplifyLibCalls.cpp U lib/Transforms/IPO/PruneEH.cpp U lib/Transforms/IPO/StructRetPromotion.cpp U lib/Transforms/IPO/ExtractGV.cpp U lib/Transforms/IPO/LowerSetJmp.cpp Skipped missing target: 'lib/Transforms/IPO/ExtractFunction.cpp' U lib/Transforms/IPO/GlobalOpt.cpp U lib/Transforms/IPO/DeadArgumentElimination.cpp U lib/Transforms/IPO/ArgumentPromotion.cpp U lib...
2008 Jun 03
10
[LLVMdev] Status of the 2.3 release - volunteers needed.
Many of you are probably wondering about the status of the 2.3 release. Unfortunately, this release has been very difficult and the list of regressions very high. The list has finally dwindled down to the following regressions: Linux/x86: SingleSource/Benchmarks/CoyoteBench/fftbench [ JIT Codegen, JIT] MultiSource/Applications/minisat/minisat [CBE] Darwin/x86: