search for: isalias

Displaying 13 results from an estimated 13 matches for "isalias".

Did you mean: ipalias
2013 Sep 12
3
[LLVMdev] [lld] Implementing the aliasing feature
...ndefinedAtom object. Another approach is to use weak aliases. That is if a.o has an undefine for foo with a fallback of bar, that when parsing that .o file into atoms produces an UndefinedAtom for foo, but also a DefinedAtom with name=foo, weak (mergeAsWeak), hidden (scopeLinkageUnit), size=0, isAlias=true which aliases to bar. So, it any definition of foo does show up, it will override the weak alias. If not the weak alias will be used and change the reference to bar. I don't think the isAlias support is all wired up in lld. But weak aliases are something common in ELF. So would shou...
2013 Sep 13
0
[LLVMdev] [lld] Implementing the aliasing feature
...tom object. > > Another approach is to use weak aliases. That is if a.o has an undefine for foo with a fallback of bar, that when parsing that .o file into atoms produces an UndefinedAtom for foo, but also a DefinedAtom with name=foo, weak (mergeAsWeak), hidden (scopeLinkageUnit), size=0, isAlias=true which aliases to bar. So, it any definition of foo does show up, it will override the weak alias. If not the weak alias will be used and change the reference to bar. > > I don't think the isAlias support is all wired up in lld. But weak aliases are something common in ELF. So w...
2013 Sep 13
2
[LLVMdev] [lld] Implementing the aliasing feature
...ct. >> >> Another approach is to use weak aliases. That is if a.o has an undefine for foo with a fallback of bar, that when parsing that .o file into atoms produces an UndefinedAtom for foo, but also a DefinedAtom with name=foo, weak (mergeAsWeak), hidden (scopeLinkageUnit), size=0, isAlias=true which aliases to bar. So, it any definition of foo does show up, it will override the weak alias. If not the weak alias will be used and change the reference to bar. >> >> I don't think the isAlias support is all wired up in lld. But weak aliases are something common in E...
2013 Apr 18
2
[LLVMdev] alias analysis in backend
...rn MustAlias; >> >> , so I'm not sure how this would be done .. ? > > If you run with -enable-misched -enable-aa-sched-mi > > then you'll get this logic from the end of MIsNeedChainEdge: > > // The following interface to AA is fashioned after DAGCombiner::isAlias > // and operates with MachineMemOperand offset with some important > // assumptions: > // - LLVM fundamentally assumes flat address spaces. > // - MachineOperand offset can *only* result from legalization and > // cannot affect queries other than the trivial case of ove...
2013 Apr 17
0
[LLVMdev] alias analysis in backend
...t; does > > if (V1 == V2) return MustAlias; > > , so I'm not sure how this would be done .. ? If you run with -enable-misched -enable-aa-sched-mi then you'll get this logic from the end of MIsNeedChainEdge: // The following interface to AA is fashioned after DAGCombiner::isAlias // and operates with MachineMemOperand offset with some important // assumptions: // - LLVM fundamentally assumes flat address spaces. // - MachineOperand offset can *only* result from legalization and // cannot affect queries other than the trivial case of overlap // checki...
2013 Sep 13
0
[LLVMdev] [lld] Implementing the aliasing feature
...>> >>> Another approach is to use weak aliases. That is if a.o has an undefine for foo with a fallback of bar, that when parsing that .o file into atoms produces an UndefinedAtom for foo, but also a DefinedAtom with name=foo, weak (mergeAsWeak), hidden (scopeLinkageUnit), size=0, isAlias=true which aliases to bar. So, it any definition of foo does show up, it will override the weak alias. If not the weak alias will be used and change the reference to bar. >>> >>> I don't think the isAlias support is all wired up in lld. But weak aliases are something comm...
2006 Dec 19
3
[LLVMdev] alias-aware scheduling
...+ // If it's any of the following then it can't alias with anything but itself. + return isa<FrameIndexSDNode>(Base) || + isa<ConstantPoolSDNode>(Base) || + isa<GlobalAddressSDNode>(Base); + } + + /* FIXME: copied from DAGCombiner.cpp */ + /// isAlias - Return true if there is any possibility that the two addresses + /// overlap. + bool isAlias(SDOperand Ptr1, int64_t Size1, + const Value *SrcValue1, int SrcValueOffset1, + SDOperand Ptr2, int64_t Size2, + const Value *SrcValue2, int SrcValueOffset2) +...
2013 Apr 17
2
[LLVMdev] alias analysis in backend
Hi Hal, Thanks. How about a symbol with two different immediate offsets - the Value* would be the same, right? I don't see how AliasAnalysis::Location would handle this... And BasicAliasAnalysis does if (V1 == V2) return MustAlias; , so I'm not sure how this would be done .. ? /Jonas > -----Original Message----- > From: Hal Finkel [mailto:hfinkel at anl.gov] > Sent:
2013 Apr 18
0
[LLVMdev] alias analysis in backend
...#39;m not sure how this would be done .. ? > > > > If you run with -enable-misched -enable-aa-sched-mi > > > > then you'll get this logic from the end of MIsNeedChainEdge: > > > > // The following interface to AA is fashioned after > > DAGCombiner::isAlias > > // and operates with MachineMemOperand offset with some important > > // assumptions: > > // - LLVM fundamentally assumes flat address spaces. > > // - MachineOperand offset can *only* result from legalization > > and > > // cannot affect querie...
2012 Mar 01
0
[LLVMdev] problem with inlining pass
Hi Jochen, > My llvm version is 3.0 release. > I have a module generated by clang. When I optimize it, I first add an > inlining pass (llvm::createFunctionInliningPass), then these passes: > - own FunctionPass > - llvm::createPromoteMemoryToRegisterPass > - llvm::createInstructionCombiningPass > - llvm::createDeadInstEliminationPass > - llvm::createDeadStoreEliminationPass
2012 Feb 29
2
[LLVMdev] problem with inlining pass
Hi! My llvm version is 3.0 release. I have a module generated by clang. When I optimize it, I first add an inlining pass (llvm::createFunctionInliningPass), then these passes: - own FunctionPass - llvm::createPromoteMemoryToRegisterPass - llvm::createInstructionCombiningPass - llvm::createDeadInstEliminationPass - llvm::createDeadStoreEliminationPass - new llvm::DominatorTree() - new
2007 Jul 24
1
[LLVMdev] alias information on machine instructions
Dan Gohman wrote: > I tried out your patch on x86 and it didn't appear to need any special changes. it might be needed to look at the addressing modes of a load/store to get the right offset. but i think it should work, if the lowering does not rewrite loads/stores into custom DAG nodes. > For the [??], it looks like the IsFrameIndex isn't getting set for the first > instruction
2012 Mar 01
3
[LLVMdev] Aliasing bug or feature?
...t;)> [ORD=8] [ID=6] // This is Load from q[0] 0x3df5470: ch = STb_GP_V4 0x3df5170, 0x3df4e70, 0x3d9c130<Mem:ST1[@s]> [ID=4] // This is a store to s Underlying Values: @q = common global i8* null, align 4 @s = common global i8 0, align 1 The way inquiry is made is similar to DAGCombiner::isAlias() SDNode *SDN1; SDNode *SDN2; MachineMemOperand *MMOa; MachineMemOperand *MMOb; ... const MachineSDNode *MNb = dyn_cast<MachineSDNode>(SDN2); const MachineSDNode *MNa = dyn_cast<MachineSDNode>(SDN1); ... MMOa = !MNa->memoperands_empty() ? (*MNa->me...