aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
authorNicolas Geoffray <nicolas.geoffray@lip6.fr>2008-04-13 13:40:22 +0000
committerNicolas Geoffray <nicolas.geoffray@lip6.fr>2008-04-13 13:40:22 +0000
commit46253ddfa7d06facd4a16cd5bd80771c15a6918f (patch)
treef0b0b0644b0038adae1aefedac31702809d91aff /include/llvm
parent1cbeb84d78f6ab311dbfcb474dddab684677ce6a (diff)
downloadexternal_llvm-46253ddfa7d06facd4a16cd5bd80771c15a6918f.zip
external_llvm-46253ddfa7d06facd4a16cd5bd80771c15a6918f.tar.gz
external_llvm-46253ddfa7d06facd4a16cd5bd80771c15a6918f.tar.bz2
Add a divided flag for the first piece of an argument divided into mulitple parts. Fixes PR1643
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49611 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/CodeGen/SelectionDAGNodes.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index deded1a..07e593a 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -1734,6 +1734,8 @@ namespace ISD {
static const uint64_t NestOffs = 5;
static const uint64_t ByValAlign = 0xFULL << 6; //< Struct alignment
static const uint64_t ByValAlignOffs = 6;
+ static const uint64_t Divided = 1ULL << 10;
+ static const uint64_t DividedOffs = 10;
static const uint64_t OrigAlign = 0x1FULL<<27;
static const uint64_t OrigAlignOffs = 27;
static const uint64_t ByValSize = 0xffffffffULL << 32; //< Struct size
@@ -1770,6 +1772,9 @@ namespace ISD {
Flags = (Flags & ~ByValAlign) |
(uint64_t(Log2_32(A) + 1) << ByValAlignOffs);
}
+
+ bool isDivided() const { return Flags & Divided; }
+ void setDivided() { Flags |= One << DividedOffs; }
unsigned getOrigAlign() const {
return (One << ((Flags & OrigAlign) >> OrigAlignOffs)) / 2;