[llvm-branch-commits] [BOLT][NFC] Define getExprValue helper (PR #91663)

2024-05-22 Thread Rafael Auler via llvm-branch-commits

https://github.com/rafaelauler approved this pull request.

LGTM

https://github.com/llvm/llvm-project/pull/91663
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [BOLT][NFC] Define getExprValue helper (PR #91663)

2024-05-09 Thread Amir Ayupov via llvm-branch-commits

https://github.com/aaupov edited https://github.com/llvm/llvm-project/pull/91663
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [BOLT][NFC] Define getExprValue helper (PR #91663)

2024-05-09 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-bolt

Author: Amir Ayupov (aaupov)


Changes

Move out common code extracting the address of a MCExpr. To be reused in
a follow-up diff.

Test Plan: NFC


---
Full diff: https://github.com/llvm/llvm-project/pull/91663.diff


1 Files Affected:

- (modified) bolt/lib/Core/BinaryFunction.cpp (+10-6) 


``diff
diff --git a/bolt/lib/Core/BinaryFunction.cpp b/bolt/lib/Core/BinaryFunction.cpp
index de34421ebeb08..11103f7bdce8b 100644
--- a/bolt/lib/Core/BinaryFunction.cpp
+++ b/bolt/lib/Core/BinaryFunction.cpp
@@ -851,15 +851,19 @@ BinaryFunction::processIndirectBranch(MCInst 
, unsigned Size,
 return IndirectBranchType::UNKNOWN;
   }
 
-  // RIP-relative addressing should be converted to symbol form by now
-  // in processed instructions (but not in jump).
-  if (DispExpr) {
+  auto getExprValue = [&](const MCExpr *Expr) {
 const MCSymbol *TargetSym;
 uint64_t TargetOffset;
-std::tie(TargetSym, TargetOffset) = BC.MIB->getTargetSymbolInfo(DispExpr);
+std::tie(TargetSym, TargetOffset) = BC.MIB->getTargetSymbolInfo(Expr);
 ErrorOr SymValueOrError = BC.getSymbolValue(*TargetSym);
-assert(SymValueOrError && "global symbol needs a value");
-ArrayStart = *SymValueOrError + TargetOffset;
+assert(SymValueOrError && "Global symbol needs a value");
+return *SymValueOrError + TargetOffset;
+  };
+
+  // RIP-relative addressing should be converted to symbol form by now
+  // in processed instructions (but not in jump).
+  if (DispExpr) {
+ArrayStart = getExprValue(DispExpr);
 BaseRegNum = BC.MIB->getNoRegister();
 if (BC.isAArch64()) {
   ArrayStart &= ~0xFFFULL;

``




https://github.com/llvm/llvm-project/pull/91663
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [BOLT][NFC] Define getExprValue helper (PR #91663)

2024-05-09 Thread Amir Ayupov via llvm-branch-commits

https://github.com/aaupov created 
https://github.com/llvm/llvm-project/pull/91663

Move out common code extracting the address of a MCExpr. To be reused in
a follow-up diff.

Test Plan: NFC



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits