[llvm-commits] [cfe-commits] [Patch] Move TargetData from Target to Support/VMCore
Villmow, Micah
Micah.Villmow at amd.com
Thu Oct 4 16:03:05 PDT 2012
From: Chandler Carruth [mailto:chandlerc at google.com]
Sent: Thursday, October 04, 2012 3:56 PM
To: Villmow, Micah
Cc: Kim Gräsman; Evan Cheng; llvm-commits at cs.uiuc.edu LLVM; Nadav Rotem; cfe-commits at cs.uiuc.edu cfe
Subject: Re: [cfe-commits] [llvm-commits] [Patch] Move TargetData from Target to Support/VMCore
On Thu, Oct 4, 2012 at 3:51 PM, Villmow, Micah <Micah.Villmow at amd.com<mailto:Micah.Villmow at amd.com>> wrote:
I'm curious how this could work.
I have two classes.
TargetData and DataLayout.
I want to point all uses of TargetData at DataLayout.
typedef won't work not just because of forward declarations, but also because of static functions.
So, I could define DataLayout as a subclass of TargetData, but once I want to move to DataLayout, how do I define TargetData in a way that won't require changes to many many locations.
I think you need to reverse the suggestion and instead use:
class TargetData {
// existing code
};
class DataLayout : public TargetData {
// some forwarding boilerplate
}
Then you can change everyone to refer to DataLayout, and then lift the implementation of TargetData up into DataLayout.
You'll have to change folks to refer to DataLayout in o "top-down" way -- producers first.
[Villmow, Micah] This is a good suggestion, but I was actually thinking of doing it in the reverse. Turn TargetData into the forwarding boilerplate, but I just wanted to make sure this was the intention instead of moving forward and having to redo some work.
What subprojects do I need to modify?
Clang/LLVM/compiler-RT I know
Others would be LLDB, dragonegg, vmkit?
What about libc++/polly/klee/safecode, etc...?
Basically what is the line that separates which projects need to be updated by myself and what needs to be updated by their owners?
Thanks,
Micah
Micah
From: Kim Gräsman [mailto:kim.grasman at gmail.com<mailto:kim.grasman at gmail.com>]
Sent: Thursday, October 04, 2012 1:33 PM
To: Villmow, Micah
Cc: Chris Lattner; Evan Cheng; llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu> LLVM; cfe-commits at cs.uiuc.edu<mailto:cfe-commits at cs.uiuc.edu> cfe; Nadav Rotem
Subject: Re: [cfe-commits] [llvm-commits] [Patch] Move TargetData from Target to Support/VMCore
HI Micah,
On Thursday, October 4, 2012, Villmow, Micah wrote:
Chris, the problem with steps #2/#3 is that plenty of clients have forward declarations of TargetData and the typedef won't work in this case, so I need to update the clients anyways.
One trick I've used as an alternative to typedefs is to just derive from the old class, e.g.
class NewName : public TargetData {};
This is forward-declarable just as well as TargetData itself.
FWIW,
- Kim
_______________________________________________
cfe-commits mailing list
cfe-commits at cs.uiuc.edu<mailto:cfe-commits at cs.uiuc.edu>
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121004/832407d8/attachment.html>
More information about the llvm-commits
mailing list