This has been in my inbox forever and I figured I should just do it. I guess B is nice since that's the way things are now, the question is, what do we want new code to look like? Maybe it should more be that private/protected members should start with an underscore and publich ones should not.
What do you think? A style change of course does not require that all code change overnight. Nate On Sun, Aug 2, 2009 at 4:31 PM, Steve Reinhardt <ste...@gmail.com> wrote: > Fine with me... one thing to clarify though is whether in the long run: > > A. all class members should start with underscore just in case we want > to give them accessors later > > or > > B. only class members with accessors should start with underscore, and > others don't > > I prefer B, mostly because A would be a much more invasive change, and > would be harder to enforce, and is generally uglier IMO. However it > does get a little confusing in that you end up with classes like > Request where privateFlags is about the only member that doesn't start > with an underscore. Constructors that allow you to set the initial > value of a field that has no accessors get even stranger, since the > convention there is that it's the constructor parameter that has the > underscore. That may not happen much, but it's still a possibility. > > A is a little nicer in that you don't have to rename a field when you > change your mind about whether you have accessor methods. > > Anyway, whichever way we decide to go we should make it explicit when > you update the style guide. > > Steve > > > > On Sun, Aug 2, 2009 at 1:10 PM, nathan binkert<n...@binkert.org> wrote: >> Very awesome. I was tempted to do this a number of times. I'm going >> to go ahead and add this standard to the style guide. ok? >> >> Nate >> >> On Sat, Aug 1, 2009 at 10:51 PM, Steve Reinhardt<steve.reinha...@amd.com> >> wrote: >>> changeset 50125d42559c in /z/repo/m5 >>> details: http://repo.m5sim.org/m5?cmd=changeset;node=50125d42559c >>> description: >>> Rename internal Request fields to start with '_'. >>> The inconsistency was causing a subtle bug with some of the >>> constructors where the params had the same name as the fields. >>> This is also a first step to switching the accessors over to >>> our new "standard", e.g., getVaddr() -> vaddr(). >>> >>> diffstat: >>> >>> 1 file changed, 58 insertions(+), 56 deletions(-) >>> src/mem/request.hh | 114 >>> ++++++++++++++++++++++++++-------------------------- >>> >>> diffs (292 lines): >>> >>> diff -r e46754b929ca -r 50125d42559c src/mem/request.hh >>> --- a/src/mem/request.hh Fri Jul 31 10:40:42 2009 -0400 >>> +++ b/src/mem/request.hh Sat Aug 01 22:50:10 2009 -0700 >>> @@ -132,17 +132,17 @@ >>> * The physical address of the request. Valid only if validPaddr >>> * is set. >>> */ >>> - Addr paddr; >>> + Addr _paddr; >>> >>> /** >>> * The size of the request. This field must be set when vaddr or >>> * paddr is written via setVirt() or setPhys(), so it is always >>> * valid as long as one of the address fields is valid. >>> */ >>> - int size; >>> + int _size; >>> >>> /** Flag structure for the request. */ >>> - Flags flags; >>> + Flags _flags; >>> >>> /** Private flags for field validity checking. */ >>> PrivateFlags privateFlags; >>> @@ -155,15 +155,15 @@ >>> Tick _time; >>> >>> /** The address space ID. */ >>> - int asid; >>> + int _asid; >>> >>> /** The virtual address of the request. */ >>> - Addr vaddr; >>> + Addr _vaddr; >>> >>> /** >>> * Extra data for the request, such as the return value of >>> * store conditional or the compare value for a CAS. */ >>> - uint64_t extraData; >>> + uint64_t _extraData; >>> >>> /** The context ID (for statistics, typically). */ >>> int _contextId; >>> @@ -171,10 +171,13 @@ >>> int _threadId; >>> >>> /** program counter of initiating access; for tracing/debugging */ >>> - Addr pc; >>> + Addr _pc; >>> >>> public: >>> - /** Minimal constructor. No fields are initialized. */ >>> + /** Minimal constructor. No fields are initialized. >>> + * (Note that _flags and privateFlags are cleared by Flags >>> + * default constructor.) >>> + */ >>> Request() >>> {} >>> >>> @@ -218,23 +221,23 @@ >>> * allocated Request object. >>> */ >>> void >>> - setPhys(Addr _paddr, int _size, Flags _flags, Tick time) >>> + setPhys(Addr paddr, int size, Flags flags, Tick time) >>> { >>> - assert(_size >= 0); >>> - paddr = _paddr; >>> - size = _size; >>> + assert(size >= 0); >>> + _paddr = paddr; >>> + _size = size; >>> _time = time; >>> >>> - flags.clear(~STICKY_FLAGS); >>> - flags.set(_flags); >>> + _flags.clear(~STICKY_FLAGS); >>> + _flags.set(flags); >>> privateFlags.clear(~STICKY_PRIVATE_FLAGS); >>> privateFlags.set(VALID_PADDR|VALID_SIZE); >>> } >>> >>> void >>> - setPhys(Addr _paddr, int _size, Flags _flags) >>> + setPhys(Addr paddr, int size, Flags flags) >>> { >>> - setPhys(_paddr, _size, _flags, curTick); >>> + setPhys(paddr, size, flags, curTick); >>> } >>> >>> /** >>> @@ -242,18 +245,17 @@ >>> * allocated Request object. >>> */ >>> void >>> - setVirt(int _asid, Addr _vaddr, int _size, Flags _flags, Addr _pc) >>> + setVirt(int asid, Addr vaddr, int size, Flags flags, Addr pc) >>> { >>> - assert(_size >= 0); >>> - asid = _asid; >>> - vaddr = _vaddr; >>> - size = _size; >>> - flags = _flags; >>> - pc = _pc; >>> + assert(size >= 0); >>> + _asid = asid; >>> + _vaddr = vaddr; >>> + _size = size; >>> + _pc = pc; >>> _time = curTick; >>> >>> - flags.clear(~STICKY_FLAGS); >>> - flags.set(_flags); >>> + _flags.clear(~STICKY_FLAGS); >>> + _flags.set(flags); >>> privateFlags.clear(~STICKY_PRIVATE_FLAGS); >>> privateFlags.set(VALID_VADDR|VALID_SIZE|VALID_PC); >>> } >>> @@ -265,10 +267,10 @@ >>> * to guarantee that the size and flags are also set. >>> */ >>> void >>> - setPaddr(Addr _paddr) >>> + setPaddr(Addr paddr) >>> { >>> assert(privateFlags.isSet(VALID_VADDR)); >>> - paddr = _paddr; >>> + _paddr = paddr; >>> privateFlags.set(VALID_PADDR); >>> } >>> >>> @@ -280,14 +282,14 @@ >>> { >>> assert(privateFlags.isSet(VALID_VADDR)); >>> assert(privateFlags.noneSet(VALID_PADDR)); >>> - assert(split_addr > vaddr && split_addr < vaddr + size); >>> + assert(split_addr > _vaddr && split_addr < _vaddr + _size); >>> req1 = new Request; >>> *req1 = *this; >>> req2 = new Request; >>> *req2 = *this; >>> - req1->size = split_addr - vaddr; >>> - req2->vaddr = split_addr; >>> - req2->size = size - req1->size; >>> + req1->_size = split_addr - _vaddr; >>> + req2->_vaddr = split_addr; >>> + req2->_size = _size - req1->_size; >>> } >>> >>> /** >>> @@ -303,7 +305,7 @@ >>> getPaddr() >>> { >>> assert(privateFlags.isSet(VALID_PADDR)); >>> - return paddr; >>> + return _paddr; >>> } >>> >>> /** >>> @@ -319,7 +321,7 @@ >>> getSize() >>> { >>> assert(privateFlags.isSet(VALID_SIZE)); >>> - return size; >>> + return _size; >>> } >>> >>> /** Accessor for time. */ >>> @@ -342,14 +344,14 @@ >>> getFlags() >>> { >>> assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR)); >>> - return flags; >>> + return _flags; >>> } >>> >>> void >>> - setFlags(Flags _flags) >>> + setFlags(Flags flags) >>> { >>> assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR)); >>> - flags.set(_flags); >>> + _flags.set(flags); >>> } >>> >>> /** Accessor function for vaddr.*/ >>> @@ -357,7 +359,7 @@ >>> getVaddr() >>> { >>> assert(privateFlags.isSet(VALID_VADDR)); >>> - return vaddr; >>> + return _vaddr; >>> } >>> >>> /** Accessor function for asid.*/ >>> @@ -365,7 +367,7 @@ >>> getAsid() >>> { >>> assert(privateFlags.isSet(VALID_VADDR)); >>> - return asid; >>> + return _asid; >>> } >>> >>> /** Accessor function for asi.*/ >>> @@ -373,7 +375,7 @@ >>> getAsi() >>> { >>> assert(privateFlags.isSet(VALID_VADDR)); >>> - return flags & ASI_BITS; >>> + return _flags & ASI_BITS; >>> } >>> >>> /** Accessor function for MMAPED_IPR flag. */ >>> @@ -381,14 +383,14 @@ >>> isMmapedIpr() >>> { >>> assert(privateFlags.isSet(VALID_PADDR)); >>> - return flags.isSet(MMAPED_IPR); >>> + return _flags.isSet(MMAPED_IPR); >>> } >>> >>> void >>> setMmapedIpr(bool r) >>> { >>> assert(VALID_VADDR); >>> - flags.set(MMAPED_IPR); >>> + _flags.set(MMAPED_IPR); >>> } >>> >>> /** Accessor function to check if sc result is valid. */ >>> @@ -403,14 +405,14 @@ >>> getExtraData() const >>> { >>> assert(privateFlags.isSet(VALID_EXTRA_DATA)); >>> - return extraData; >>> + return _extraData; >>> } >>> >>> /** Accessor function for store conditional return value.*/ >>> void >>> - setExtraData(uint64_t _extraData) >>> + setExtraData(uint64_t extraData) >>> { >>> - extraData = _extraData; >>> + _extraData = extraData; >>> privateFlags.set(VALID_EXTRA_DATA); >>> } >>> >>> @@ -447,31 +449,31 @@ >>> getPC() const >>> { >>> assert(privateFlags.isSet(VALID_PC)); >>> - return pc; >>> + return _pc; >>> } >>> >>> /** Accessor Function to Check Cacheability. */ >>> - bool isUncacheable() const { return flags.isSet(UNCACHEABLE); } >>> - bool isInstFetch() const { return flags.isSet(INST_FETCH); } >>> - bool isPrefetch() const { return flags.isSet(PREFETCH); } >>> - bool isLLSC() const { return flags.isSet(LLSC); } >>> - bool isLocked() const { return flags.isSet(LOCKED); } >>> - bool isSwap() const { return flags.isSet(MEM_SWAP|MEM_SWAP_COND); } >>> - bool isCondSwap() const { return flags.isSet(MEM_SWAP_COND); } >>> + bool isUncacheable() const { return _flags.isSet(UNCACHEABLE); } >>> + bool isInstFetch() const { return _flags.isSet(INST_FETCH); } >>> + bool isPrefetch() const { return _flags.isSet(PREFETCH); } >>> + bool isLLSC() const { return _flags.isSet(LLSC); } >>> + bool isLocked() const { return _flags.isSet(LOCKED); } >>> + bool isSwap() const { return _flags.isSet(MEM_SWAP|MEM_SWAP_COND); } >>> + bool isCondSwap() const { return _flags.isSet(MEM_SWAP_COND); } >>> >>> bool >>> isMisaligned() const >>> { >>> - if (flags.isSet(NO_ALIGN_FAULT)) >>> + if (_flags.isSet(NO_ALIGN_FAULT)) >>> return false; >>> >>> - if ((vaddr & 0x1)) >>> + if ((_vaddr & 0x1)) >>> return true; >>> >>> - if (flags.isSet(NO_HALF_WORD_ALIGN_FAULT)) >>> + if (_flags.isSet(NO_HALF_WORD_ALIGN_FAULT)) >>> return false; >>> >>> - if ((vaddr & 0x2)) >>> + if ((_vaddr & 0x2)) >>> return true; >>> >>> return false; >>> _______________________________________________ >>> m5-dev mailing list >>> m5-dev@m5sim.org >>> http://m5sim.org/mailman/listinfo/m5-dev >>> >>> >> _______________________________________________ >> m5-dev mailing list >> m5-dev@m5sim.org >> http://m5sim.org/mailman/listinfo/m5-dev >> > _______________________________________________ > m5-dev mailing list > m5-dev@m5sim.org > http://m5sim.org/mailman/listinfo/m5-dev > > _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev