[clang] [CodeGen][Hexagon] Replace PointerType::getUnqual(Type) with opaque version (NFC) (PR #126274)
Mats Jun Larsen via cfe-commits
cfe-commits at lists.llvm.org
Sat Feb 8 07:02:11 PST 2025
https://github.com/junlarsen updated https://github.com/llvm/llvm-project/pull/126274
>From d0613ac62099faefab887605422cba95116ce12a Mon Sep 17 00:00:00 2001
From: Mats Jun Larsen <mats at jun.codes>
Date: Sat, 8 Feb 2025 02:35:31 +0900
Subject: [PATCH 1/3] [CodeGen][Hexagon] Replace of PointerType::get(Type) with
opaque version (NFC)
---
clang/lib/CodeGen/Targets/Hexagon.cpp | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/clang/lib/CodeGen/Targets/Hexagon.cpp b/clang/lib/CodeGen/Targets/Hexagon.cpp
index 8fd2a81494d998c..6ad247a5056d376 100644
--- a/clang/lib/CodeGen/Targets/Hexagon.cpp
+++ b/clang/lib/CodeGen/Targets/Hexagon.cpp
@@ -8,6 +8,7 @@
#include "ABIInfoImpl.h"
#include "TargetInfo.h"
+#include "llvm/IR/DerivedTypes.h"
using namespace clang;
using namespace clang::CodeGen;
@@ -336,10 +337,6 @@ Address HexagonABIInfo::EmitVAArgForHexagonLinux(CodeGenFunction &CGF,
// Implement the block where argument is in register saved area
CGF.EmitBlock(InRegBlock);
- llvm::Type *PTy = CGF.ConvertType(Ty);
- llvm::Value *__saved_reg_area_p = CGF.Builder.CreateBitCast(
- __current_saved_reg_area_pointer, llvm::PointerType::getUnqual(PTy));
-
CGF.Builder.CreateStore(__new_saved_reg_area_pointer,
__current_saved_reg_area_pointer_p);
@@ -388,22 +385,16 @@ Address HexagonABIInfo::EmitVAArgForHexagonLinux(CodeGenFunction &CGF,
CGF.Builder.CreateStore(__new_overflow_area_pointer,
__current_saved_reg_area_pointer_p);
- // Bitcast the overflow area pointer to the type of argument.
- llvm::Type *OverflowPTy = CGF.ConvertTypeForMem(Ty);
- llvm::Value *__overflow_area_p = CGF.Builder.CreateBitCast(
- __overflow_area_pointer, llvm::PointerType::getUnqual(OverflowPTy));
-
CGF.EmitBranch(ContBlock);
-
// Get the correct pointer to load the variable argument
// Implement the ContBlock
CGF.EmitBlock(ContBlock);
llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty);
- llvm::Type *MemPTy = llvm::PointerType::getUnqual(MemTy);
- llvm::PHINode *ArgAddr = CGF.Builder.CreatePHI(MemPTy, 2, "vaarg.addr");
- ArgAddr->addIncoming(__saved_reg_area_p, InRegBlock);
- ArgAddr->addIncoming(__overflow_area_p, OnStackBlock);
+ llvm::PHINode *ArgAddr = CGF.Builder.CreatePHI(
+ llvm::PointerType::getUnqual(MemTy->getContext()), 2, "vaarg.addr");
+ ArgAddr->addIncoming(__new_saved_reg_area_pointer, InRegBlock);
+ ArgAddr->addIncoming(__overflow_area_pointer, OnStackBlock);
return Address(ArgAddr, MemTy, CharUnits::fromQuantity(ArgAlign));
}
>From 5c5c8c4e1b6482552fb3c02624543ec6ff60f844 Mon Sep 17 00:00:00 2001
From: Mats Jun Larsen <mats at jun.codes>
Date: Sat, 8 Feb 2025 22:22:15 +0900
Subject: [PATCH 2/3] Use correct saved_reg_area_pointer
---
clang/lib/CodeGen/Targets/Hexagon.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/lib/CodeGen/Targets/Hexagon.cpp b/clang/lib/CodeGen/Targets/Hexagon.cpp
index 6ad247a5056d376..3e6ab74ff7ed7f9 100644
--- a/clang/lib/CodeGen/Targets/Hexagon.cpp
+++ b/clang/lib/CodeGen/Targets/Hexagon.cpp
@@ -393,7 +393,7 @@ Address HexagonABIInfo::EmitVAArgForHexagonLinux(CodeGenFunction &CGF,
llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty);
llvm::PHINode *ArgAddr = CGF.Builder.CreatePHI(
llvm::PointerType::getUnqual(MemTy->getContext()), 2, "vaarg.addr");
- ArgAddr->addIncoming(__new_saved_reg_area_pointer, InRegBlock);
+ ArgAddr->addIncoming(__current_saved_reg_area_pointer, InRegBlock);
ArgAddr->addIncoming(__overflow_area_pointer, OnStackBlock);
return Address(ArgAddr, MemTy, CharUnits::fromQuantity(ArgAlign));
>From eec0d490cd021d5bc03de01c179bc701fc2f6e14 Mon Sep 17 00:00:00 2001
From: Mats Jun Larsen <mats at jun.codes>
Date: Sun, 9 Feb 2025 00:01:48 +0900
Subject: [PATCH 3/3] Remove inserted includes
---
clang/lib/CodeGen/Targets/Hexagon.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/clang/lib/CodeGen/Targets/Hexagon.cpp b/clang/lib/CodeGen/Targets/Hexagon.cpp
index 3e6ab74ff7ed7f9..aada8d0d61303be 100644
--- a/clang/lib/CodeGen/Targets/Hexagon.cpp
+++ b/clang/lib/CodeGen/Targets/Hexagon.cpp
@@ -8,7 +8,6 @@
#include "ABIInfoImpl.h"
#include "TargetInfo.h"
-#include "llvm/IR/DerivedTypes.h"
using namespace clang;
using namespace clang::CodeGen;
More information about the cfe-commits
mailing list