Closed
Bug 490849
Opened 17 years ago
Closed 17 years ago
Add .isArtificial to dehydra for gcc temporaries
Categories
(Developer Infrastructure :: Source Code Analysis, defect)
Developer Infrastructure
Source Code Analysis
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 492446
People
(Reporter: humph, Assigned: taras.mozilla)
Details
Attachments
(1 file, 2 obsolete files)
|
1.57 KB,
patch
|
Details | Diff | Splinter Review |
When dealing with statements, for something like |this| I'm getting a name like |D_48084|. I'd like to be able to either ignore these, or get |this|.
| Assignee | ||
Comment 1•17 years ago
|
||
Attachment #375193 -
Flags: review?(david.humphrey)
| Reporter | ||
Comment 2•17 years ago
|
||
I tried this, and it works (you knew that). But I wonder if it's worth adding, i.e., is it too aggressive. Here's an example of the types of things I see when I build in js/ for example:
gcc temporary (isArtificial) - avmplus::GCFinalizedObject::GCFinalizedObject()
gcc temporary (isArtificial) - avmplus::GCObject::GCObject()
gcc temporary (isArtificial) - avmplus::SortedMap<const void*, nanojit::Fragment*, LIST_GCObjects>::~SortedMap()
gcc temporary (isArtificial) - avmplus::SortedMap<const void*, unsigned int, LIST_NonGCObjects>::~SortedMap()
gcc temporary (isArtificial) - avmplus::SortedMap<nanojit::LIns*, nanojit::LabelState*, LIST_GCObjects>::~SortedMap()
gcc temporary (isArtificial) - avmplus::SortedMap<nanojit::NIns*, nanojit::LIns*, LIST_NonGCObjects>::~SortedMap()
gcc temporary (isArtificial) - avmplus::SortedMap<nanojit::SideExit*, nanojit::RegAlloc*, LIST_GCObjects>::~SortedMap()
gcc temporary (isArtificial) - __builtin_alloca(unsigned int)
gcc temporary (isArtificial) - __builtin_clz(unsigned int)
gcc temporary (isArtificial) - __builtin_copysign(double, double)
gcc temporary (isArtificial) - __builtin_expect(long int, long int)
gcc temporary (isArtificial) - __builtin_va_copy(char*&, char*)
gcc temporary (isArtificial) - __builtin_va_end(char*&)
gcc temporary (isArtificial) - __builtin_va_start(char*&, ...)
gcc temporary (isArtificial) - D_10518
gcc temporary (isArtificial) - D_21259
gcc temporary (isArtificial) - D_25655
gcc temporary (isArtificial) - D_25859
gcc temporary (isArtificial) - D_27550
gcc temporary (isArtificial) - D_27578
gcc temporary (isArtificial) - D_27598
gcc temporary (isArtificial) - D_27609
gcc temporary (isArtificial) - D_27610
gcc temporary (isArtificial) - D_5464
gcc temporary (isArtificial) - D_6138
gcc temporary (isArtificial) - D_6247
gcc temporary (isArtificial) - D_7303
gcc temporary (isArtificial) - D_8616
gcc temporary (isArtificial) - D_8650
gcc temporary (isArtificial) - D_9074
gcc temporary (isArtificial) - D_9571
gcc temporary (isArtificial) - D_9662
gcc temporary (isArtificial) - D_9734
gcc temporary (isArtificial) - D_9814
gcc temporary (isArtificial) - D_9838
gcc temporary (isArtificial) - __in_chrg
gcc temporary (isArtificial) - JSAtomSet::JSAtomSet()
gcc temporary (isArtificial) - nanojit::DeadCodeFilter::~DeadCodeFilter()
gcc temporary (isArtificial) - nanojit::LirBuffer::_vptr.LirBuffer
gcc temporary (isArtificial) - nanojit::LirBufWriter::~LirBufWriter()
gcc temporary (isArtificial) - nanojit::LirFilter::_vptr.LirFilter
gcc temporary (isArtificial) - nanojit::LirWriter::_vptr.LirWriter
gcc temporary (isArtificial) - operator delete [](void*)
gcc temporary (isArtificial) - operator delete(void*)
gcc temporary (isArtificial) - operator new [](unsigned int)
gcc temporary (isArtificial) - operator new(unsigned int)
gcc temporary (isArtificial) - __PRETTY_FUNCTION__
gcc temporary (isArtificial) - StringifyClosure::~StringifyClosure()
gcc temporary (isArtificial) - this
gcc temporary (isArtificial) - TypeMap::~TypeMap()
gcc temporary (isArtificial) - TypeMap::TypeMap()
This does include 'this' but mixed in with stuff I don't want (e.g., 'D_6138' or '__builtin_va_start(char*&, ...)') is stuff I might want (e.g., 'TypeMap::TypeMap()').
What do you think? Should we push this in, or should I instead look for some known cases I care about?
| Assignee | ||
Comment 3•17 years ago
|
||
Thanks for the report. How about this? In this case I'm only doing isArtificial if gcc does not provide a name.
| Reporter | ||
Comment 4•17 years ago
|
||
This looks a lot more realistic. Again, here's what I see building in js/src:
gcc temporary (isArtificial) - D_10251 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_10092 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_9929 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_10197 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_14954 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.cpp:4262:67
gcc temporary (isArtificial) - D_10059 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_11249 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_10164 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_10172 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_11147 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_11705 /home/dave/dxr/mozilla-central/mozilla/js/src/jsemit.h:361:1
gcc temporary (isArtificial) - D_7671 /home/dave/dxr/mozilla-central/mozilla/js/src/jsatom.h:119:1
gcc temporary (isArtificial) - D_11134 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_10020 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
gcc temporary (isArtificial) - D_11324 /home/dave/dxr/mozilla-central/mozilla/js/src/jsparse.h:632:1
Attachment #375193 -
Attachment is obsolete: true
Attachment #375651 -
Attachment is obsolete: true
Attachment #375193 -
Flags: review?(david.humphrey)
| Assignee | ||
Comment 5•17 years ago
|
||
i think the best approach is to export shortname properly ie bug 492446 withmy suggestions...ie like DECL_NAME check in the patch. Since what you really want is to be able to check for things that don't exist in the source and afaik those usually don't come with names.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → DUPLICATE
Updated•8 years ago
|
Product: Core → Firefox Build System
Updated•3 years ago
|
Product: Firefox Build System → Developer Infrastructure
You need to log in
before you can comment on or make changes to this bug.
Description
•