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)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 492446

People

(Reporter: humph, Assigned: taras.mozilla)

Details

Attachments

(1 file, 2 obsolete files)

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|.
Attached patch try this (obsolete) — Splinter Review
Attachment #375193 - Flags: review?(david.humphrey)
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?
Attached patch try #2 (obsolete) — Splinter Review
Thanks for the report. How about this? In this case I'm only doing isArtificial if gcc does not provide a name.
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)
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
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: