Displaying 20 results from an estimated 77 matches for "getoffset".
Did you mean:
get_offset
2013 Apr 18
2
[LLVMdev] alias analysis in backend
...ect queries other than the trivial case of overlap
> // checking.
> // - These offsets never wrap and never step outside
> // of allocated objects.
> // - There should never be any negative offsets here.
> //
> ...
>
> int64_t MinOffset = std::min(MMOa->getOffset(), MMOb->getOffset());
> int64_t Overlapa = MMOa->getSize() + MMOa->getOffset() - MinOffset;
> int64_t Overlapb = MMOb->getSize() + MMOb->getOffset() - MinOffset;
>
> AliasAnalysis::AliasResult AAResult = AA->alias(
> AliasAnalysis::Location(MMOa->getValue()...
2013 Apr 17
0
[LLVMdev] alias analysis in backend
...galization and
// cannot affect queries other than the trivial case of overlap
// checking.
// - These offsets never wrap and never step outside
// of allocated objects.
// - There should never be any negative offsets here.
//
...
int64_t MinOffset = std::min(MMOa->getOffset(), MMOb->getOffset());
int64_t Overlapa = MMOa->getSize() + MMOa->getOffset() - MinOffset;
int64_t Overlapb = MMOb->getSize() + MMOb->getOffset() - MinOffset;
AliasAnalysis::AliasResult AAResult = AA->alias(
AliasAnalysis::Location(MMOa->getValue(), Overlapa,...
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
...; overlap
> > // checking.
> > // - These offsets never wrap and never step outside
> > // of allocated objects.
> > // - There should never be any negative offsets here.
> > //
> > ...
> >
> > int64_t MinOffset = std::min(MMOa->getOffset(),
> > MMOb->getOffset());
> > int64_t Overlapa = MMOa->getSize() + MMOa->getOffset() -
> > MinOffset;
> > int64_t Overlapb = MMOb->getSize() + MMOb->getOffset() -
> > MinOffset;
> >
> > AliasAnalysis::AliasResult AAResult = AA->ali...
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
2016 Mar 24
1
[PATCH] D15965: Add support for dumping relocations in non-relocatable files
It sounds like what you’re asking is, rather that universally calling RelocationRef::getOffset inside llvm-objdump.cpp
I should:
* Check if Obj “isRelocatableObject”
* If it is, call RelocationRef::getOffset()
* If it isn’t
o Call RelocationRef::getAddress()
o Build an ordered map of all sections and their bounds, check if the relocation lands within a section...
2018 Mar 22
2
Question about debug information for global variables
...with and without
DW_OP_deref, but I always get the same wrong result when I test with
LLDB. The offset is always added to the address of BaseAddress and not
to its value.
The code for creating logical variables looks roughly like:
llvm::SmallVector<uint64_t, 4> ops;
size_t offset = getOffset(logicalVariable);
// Get the value of the global variable that contains a pointer to
the memory block.
// NOTE: Even if DW_OP_deref is omitted, the results under LLDB
are the same.
ops.push_back(llvm::dwarf::DW_OP_deref);
// Add a constant offset to the value of the global variable....
2016 Feb 03
2
[buildSchedGraph] memory dependencies
...gt;getValue();
+ const Value *VALb = MMOb->getValue();
+ if (VALa == VALb &&
+ !MIa->hasUnmodeledSideEffects() && !MIb->hasUnmodeledSideEffects() &&
+ !MIa->hasOrderedMemoryRef() && !MIb->hasOrderedMemoryRef()) {
+ int OffsetA = MMOa->getOffset(), OffsetB = MMOb->getOffset();
+ int WidthA = MMOa->getSize(), WidthB = MMOb->getSize();
+ int LowOffset = OffsetA < OffsetB ? OffsetA : OffsetB;
+ int HighOffset = OffsetA < OffsetB ? OffsetB : OffsetA;
+ int LowWidth = (LowOffset == OffsetA) ? WidthA : WidthB;
+ if...
2009 Sep 14
4
[LLVMdev] [PATCH] Spill Comments
...Would it
> be possible to use MachineMemOperands instead? In theory,
> they should already be preserving the needed information. If
> they're not sufficient, could they be improved?
Yeah, I'm not totally happy with that mapping either. With
MachineMemOperands, would that be the getOffset() method? That's
only for FPRel data, though. What if frame pointer elimination has
been run?
I would love to get out from under the map if possible.
> There is work going on to improve the register allocator's ability
> to use rematerlialization. In a world where the register al...
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
2006 Aug 09
0
Position.cumulativeOffset issues?
...oject that involves a lot of front-end
functionality and I noticed that Position.cumulativeOffset was not as
accurate as I had expected/needed. I also needed some more options and I
just didn''t really like having to type Position.cumulativeOffset all the
time. I wanted to simply do element.getOffset() and be done.
After lots of time spent going back and forth with the different browsers
and nesting elements I have come up with what I believe is the most accurate
cumulative offset function cross browser. I tried everything I could think
of to keep the code as simple and small as possible. I tr...
2018 Mar 22
0
Question about debug information for global variables
...e offset is always added to the address of BaseAddress and not
> to its value.
Can you share the final expression as printed by llvm-dwarfdump?
>
> The code for creating logical variables looks roughly like:
>
> llvm::SmallVector<uint64_t, 4> ops;
> size_t offset = getOffset(logicalVariable);
> // Get the value of the global variable that contains a pointer to
> the memory block.
> // NOTE: Even if DW_OP_deref is omitted, the results under LLDB
> are the same.
Have you considered that this might be a bug in LLDB? You really shouldn't get the same...
2018 Mar 22
2
Question about debug information for global variables
...= !DIExpression(DW_OP_deref, DW_OP_constu, 2000, DW_OP_plus)
Without deref:
!28 = !DIExpression(DW_OP_constu, 2000, DW_OP_plus)
>>
>> The code for creating logical variables looks roughly like:
>>
>> llvm::SmallVector<uint64_t, 4> ops;
>> size_t offset = getOffset(logicalVariable);
>> // Get the value of the global variable that contains a pointer to
>> the memory block.
>> // NOTE: Even if DW_OP_deref is omitted, the results under LLDB
>> are the same.
>
> Have you considered that this might be a bug in LLDB? You really s...
2012 Mar 01
3
[LLVMdev] Aliasing bug or feature?
...(*MNa->memoperands_begin()) : NULL;
MMOb = !MNb->memoperands_empty() ?
(*MNb->memoperands_begin()) : NULL;
if (MMOa && MMOa->getValue() && MMOb && MMOb->getValue()) {
...
int64_t MinOffset = std::min(MMOa->getOffset(), MMOb->getOffset());
int64_t Overlapa = MMOa->getSize() + MMOa->getOffset() - MinOffset;
int64_t Overlapb = MMOb->getSize() + MMOb->getOffset() - MinOffset;
AliasAnalysis::AliasResult AAResult = AA->alias(
AliasAnalysis::Location(MMOa->get...
2011 Jan 04
4
[LLVMdev] Bug in MachineInstr::isIdenticalTo
...identical.
+ for (MachineInstr::mmo_iterator mb1 = memoperands_begin(), mb2 = Other->memoperands_begin()
+ me = memoperands_end(); mb1 != me; ++mb1, ++mb2) {
+ if (mb1->getSize() != mb2->getSize() ||
+ mb1->getFlags() != mb2->getFlags() ||
+ mb1->getOffset() != mb2->getOffset()) {
+ return false;
+ }
+ }
+ }
+
// Check operands to make sure they match.
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
const MachineOperand &MO = getOperand(i);
So, my question is, should isIdenticalTo take the memoperands int...
2011 Nov 19
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...=============
> --- lib/Analysis/ScopInfo.cpp (revision 144978)
> +++ lib/Analysis/ScopInfo.cpp (working copy)
> @@ -311,29 +311,38 @@
> Type = Access.isRead() ? Read : Write;
> statement = Statement;
>
> - isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset());
> BaseAddr = Access.getBase();
>
> - setBaseName();
> + if (Access.isAffine()) {
>
> - // Devide the access function by the size of the elements in the array.
> - //
> - // A stride one array access in C expressed as A[i] is expressed in LLVM-IR
> - // as so...
2011 Jan 04
0
[LLVMdev] Bug in MachineInstr::isIdenticalTo
...(MachineInstr::mmo_iterator mb1 = memoperands_begin(), mb2 = Other->memoperands_begin()
> + me = memoperands_end(); mb1 != me; ++mb1, ++mb2) {
> + if (mb1->getSize() != mb2->getSize() ||
> + mb1->getFlags() != mb2->getFlags() ||
> + mb1->getOffset() != mb2->getOffset()) {
> + return false;
> + }
> + }
> + }
> +
> // Check operands to make sure they match.
> for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
> const MachineOperand &MO = getOperand(i);
>
> So, my question...
2009 Jun 10
3
[LLVMdev] Why does the x86-64 JIT emit stubs for external calls?
...tub =
(Is64BitMode &&
(TM.getCodeModel() == CodeModel::Large ||
TM.getSubtarget<X86Subtarget>().isTargetDarwin())) ||
Opcode == X86::TAILJMPd;
emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word,
MO.getOffset(), 0, NeedStub);
This causes every external call to be emitted as a call to a stub
which then jumps to the real function.
I understand, thanks to the helpful folks on #llvm, that calls across
more than 31 bits of address space need to be emitted as a "mov
$ADDRESS, r10; call *r10" pair i...
2019 Jun 05
2
llvm-ir: TBAA and struct copies
...in TypeBasedAliasAnalysis.cpp, in function bool mayBeAccessToSubobjectOf(...):
https://github.com/llvm/llvm-project/blob/master/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp#L619
if (BaseType.getNode() == SubobjectTag.getBaseType()) {
bool SameMemberAccess = OffsetInBase == SubobjectTag.getOffset(); // **** HERE
if (GenericTag) {
*GenericTag = SameMemberAccess ? SubobjectTag.getNode() :
createAccessTag(CommonType);
}
MayAlias = SameMemberAccess;
return true;
}
For the 'NewFormat', The 'MayAli...
2015 Jun 26
2
[LLVMdev] ORC and relocations
...SymbolRelocations.find(Name);
} else {
// We found the symbol in our global table. It was probably in a
// Module that we loaded previously.
const auto &SymInfo = Loc->second;
Addr = getSectionLoadAddress(SymInfo.getSectionID()) +
SymInfo.getOffset();
}
if (Addr) {
DEBUG(dbgs() << "Resolving relocations Name: " << Name << "\t"
<< format("0x%lx", Addr) << "\n");
// This list may have been updated when we called getSymbolAddress, so...