|
|
| Bugzilla Link |
415 |
| Resolution |
FIXED |
| Resolved on |
Feb 22, 2010 12:47 |
| Version |
1.0 |
| OS |
All |
Extended Description
Brian pointed out that the Olden/mst benchmark has code that basically looks
like this:
main() {
Do_all_BlueRule(..., 1, 0);
}
void Do_all_BlueRule(..., int nproc, int pn) {
if (nproc > 1) {
Do_all_BlueRule(nproc/2, nproc/2+pn);
... A BUNCH OF OTHER STUFF ...
}
bar();
}
The observation is that Do_all_BlueRule contains a bunch of code that is
dynamically dead, but it requires a smarter IPCP algorithm to notice it (the
unreachable recursive call causes us to miss this).
It seems like an aggressive IPCP coupled with SCCP'y techniques could solve this
pretty easily.
-Chris
Extended Description
Brian pointed out that the Olden/mst benchmark has code that basically looks
like this:
main() {
Do_all_BlueRule(..., 1, 0);
}
void Do_all_BlueRule(..., int nproc, int pn) {
if (nproc > 1) {
Do_all_BlueRule(nproc/2, nproc/2+pn);
... A BUNCH OF OTHER STUFF ...
}
bar();
}
The observation is that Do_all_BlueRule contains a bunch of code that is
dynamically dead, but it requires a smarter IPCP algorithm to notice it (the
unreachable recursive call causes us to miss this).
It seems like an aggressive IPCP coupled with SCCP'y techniques could solve this
pretty easily.
-Chris