[llvm-commits] Trivial warning
Joe Abbey
jabbey at arxan.com
Fri Nov 16 11:39:56 PST 2012
----- Original Message -----
From: "David Blaikie" <dblaikie at gmail.com<mailto:dblaikie at gmail.com>>
To: "Bill Schmidt" <wschmidt at linux.vnet.ibm.com<mailto:wschmidt at linux.vnet.ibm.com>>
Cc: "Hal Finkel" <hfinkel at anl.gov<mailto:hfinkel at anl.gov>>, llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>, "Joe Abbey" <jabbey at arxan.com<mailto:jabbey at arxan.com>>
Sent: Friday, November 16, 2012 1:19:30 PM
Subject: Re: [llvm-commits] Trivial warning
On Fri, Nov 16, 2012 at 11:13 AM, Bill Schmidt
<wschmidt at linux.vnet.ibm.com<mailto:wschmidt at linux.vnet.ibm.com>> wrote:
On Fri, 2012-11-16 at 12:32 -0600, Hal Finkel wrote:
----- Original Message -----
From: "Roman Divacky" <rdivacky at freebsd.org<mailto:rdivacky at freebsd.org>>
To: "Hal Finkel" <hfinkel at anl.gov<mailto:hfinkel at anl.gov>>
Cc: llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>, "Joe Abbey" <jabbey at arxan.com<mailto:jabbey at arxan.com>>
Sent: Friday, November 16, 2012 12:13:53 PM
Subject: Re: [llvm-commits] Trivial warning
On Fri, Nov 16, 2012 at 11:38:07AM -0600, Hal Finkel wrote:
----- Original Message -----
From: "Benjamin Kramer" <benny.kra at gmail.com<mailto:benny.kra at gmail.com>>
To: "Joe Abbey" <jabbey at arxan.com<mailto:jabbey at arxan.com>>
Cc: "Hal Finkel" <hfinkel at anl.gov<mailto:hfinkel at anl.gov>>, llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>
Sent: Friday, November 16, 2012 10:00:47 AM
Subject: Re: [llvm-commits] Trivial warning
On 16.11.2012, at 13:11, Joe Abbey <jabbey at arxan.com<mailto:jabbey at arxan.com>> wrote:
On Nov 16, 2012, at 12:38 AM, Joe Abbey <jabbey at arxan.com<mailto:jabbey at arxan.com>>
wrote:
Hal (et al),
One of my build bots reported a warning:
PPCRegisterInfo.cpp:501:51: warning: cast from type
???const
llvm::MachineFunction*??? to type
???llvm::MachineFunction*???
casts
away qualifiers [-Wcast-qual]
Index: lib/Target/PowerPC/PPCRegisterInfo.cpp
===================================================================
--- lib/Target/PowerPC/PPCRegisterInfo.cpp (revision
168110)
+++ lib/Target/PowerPC/PPCRegisterInfo.cpp (working
copy)
@@ -498,7 +498,8 @@
} else if (CRSpillFrameIdx) {
FrameIdx = CRSpillFrameIdx;
} else {
- MachineFrameInfo *MFI = ((MachineFunction
&)MF).getFrameInfo();
+ MachineFrameInfo *MFI =
+ (const_cast<MachineFunction
&>MF).getFrameInfo();
FrameIdx = MFI->CreateFixedObject((uint64_t)4,
(int64_t)-4,
true);
CRSpillFrameIdx = FrameIdx;
}
Ok to commit?
Past Joe,
Make sure your current build is setup to do PowerPC
builds.
Also, swapping a warning for an error is a horrible
trade???
let's
try that patch again:
Index: lib/Target/PowerPC/PPCRegisterInfo.cpp
===================================================================
--- lib/Target/PowerPC/PPCRegisterInfo.cpp (revision
168110)
+++ lib/Target/PowerPC/PPCRegisterInfo.cpp (working
copy)
@@ -498,7 +498,8 @@
} else if (CRSpillFrameIdx) {
FrameIdx = CRSpillFrameIdx;
} else {
- MachineFrameInfo *MFI = ((MachineFunction
&)MF).getFrameInfo();
+ MachineFrameInfo *MFI =
+ (const_cast<MachineFunction
&>(MF)).getFrameInfo();
FrameIdx = MFI->CreateFixedObject((uint64_t)4,
(int64_t)-4,
true);
CRSpillFrameIdx = FrameIdx;
}
While this would be the right way to silence the warning,
the
whole
thing looks like a horrible hack to me. Shouldn't the
FrameIdx
generated in a place where MF isn't const?
Roman, you had looked at these const issues, right? Do you
have an
opinion on this?
I actively avoided any const_cast<>s in my const rage :)
This code was contributed by wschmidt@ and iirc it needs to be
like this because PPC is special (addressing against fp).
Bill, opinion?
It looks to me like this has been changed a couple of times now:
Original code:
MachineFrameInfo *MFI = ((MachineFunction
&)MF).getFrameInfo();
Fixed in 165941 by Micah Villnow:
165941 mvillmow MachineFrameInfo *MFI =
(const_cast<MachineFunction &>(MF)).getFrameInfo();
Reverted by Chandler in 167222:
167222 chandlerc MachineFrameInfo *MFI = ((MachineFunction
&)MF).getFrameInfo();
It looks like this particular change was reverted without prejudice.
The change was part of a much larger & more problematic change that
was reverted on those merits - this was just collateral damage.
In that case, please (re-)apply the const_cast. Can someone please file a PR so that we don't forget to actually fix this problem.
Thanks again,
Hal
I think what this comes down to is a great big "group LGTM" to Joe for
his second attempt at the patch. :-D
Very well. I'll commit the correct patch.
r168185
While this would be the right way to silence the warning, the whole thing looks like a horrible hack to me. Shouldn't the FrameIdx generated in a place where MF isn't const?
Benjamin, could you file a PR to un-hack the code?
Cheers,
Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121116/fe65bcba/attachment.html>
More information about the llvm-commits
mailing list