[llvm-commits] [llvm] r101465 - in /llvm/trunk: include/llvm/ include/llvm/Support/ lib/Analysis/ lib/Analysis/IPA/ lib/Bitcode/Writer/ lib/CodeGen/ lib/CodeGen/SelectionDAG/ lib/Target/CBackend/ lib/Target/CppBackend/ lib/Target/X86/ lib/Transforms/IPO/ lib/Transforms/InstCombine/ lib/Transforms/Instrumentation/ lib/Transforms/Scalar/ lib/Transforms/Utils/ lib/VMCore/

Eric Christopher echristo at apple.com
Fri Apr 16 16:41:13 PDT 2010

On Apr 16, 2010, at 8:33 AM, Gabor Greif wrote:

> Author: ggreif
> Date: Fri Apr 16 10:33:14 2010
> New Revision: 101465
> URL: http://llvm.org/viewvc/llvm-project?rev=101465&view=rev
> Log:
> reapply r101434
> with a fix for self-hosting
> rotate CallInst operands, i.e. move callee to the back
> of the operand array
> the motivation for this patch are laid out in my mail to llvm-commits:
> more efficient access to operands and callee, faster callgraph-construction,
> smaller compiler binary

Hi Gabor,

I've had to revert this for now.  It's causing some internal JIT testing to fail.  The most likely areas that you missed are in the JIT or SSE vector instruction areas.  My suggestion to make sure that these problems don't occur is to completely remove the getOperand() interface and replace it with something else - then any calls to getOperand() you know you've handled.

This will also solve any problems with outside consumers that want the old behavior - they assume that the operand order isn't going to change.

I didn't see any real gains from your patch - is there some other way to accomplish this goal?


More information about the llvm-commits mailing list