Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish Danny Berlin's Re-implementation of Andersen's AA #1731

Closed
llvmbot opened this issue Apr 25, 2007 · 1 comment
Closed

Finish Danny Berlin's Re-implementation of Andersen's AA #1731

llvmbot opened this issue Apr 25, 2007 · 1 comment
Labels
bugzilla Issues migrated from bugzilla

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented Apr 25, 2007

Bugzilla Link 1359
Resolution FIXED
Resolved on Sep 19, 2007 11:28
Version trunk
OS All
Attachments Danny's changes to Andersens.cpp, gcc imploementation of bitmap, gcc delcaration of bitmap, gcc implementation of obstack, gcc declaration of obstack
Reporter LLVM Bugzilla Contributor
CC @isanbard

Extended Description

From Danny:

Hi guys, i'm not going to have time to work on this for a month or
two, so i figured i'd post it.

This patch

  1. reworks the andersen's implementation to support field sensitivity
    (though field-sensitive constraints are not generated directly yet),
    and uses it to do indirect function call support.
  2. Rewrites the solver to be state of the art in terms of speed.
    kimwitu++ used to take to solve, and
    now it takes < 2 seconds.
  3. Reworks the rest of the implementation to make it easy to support
    offline variable substitution.

There are still more improvements to be made, and in particular
implementing ovs. This is not more than a couple hundred lines of
code, and would speed it up by another few orders of magnitude (as
well as reduce memory usage greatly).

The main thing blocking this patch, however, is that someone needs to
rewrite bitmap.c/bitmap.h, obstack.c and obstack.h, into C++. They
are currently just modified versions of what gcc is using.
You can get rid of the obstacks, of course.

Using set or BitVector or something like it will result in a
slowdown of mammoth proporations, and about a 10x memory increase.
Trust me here, you don't want to use a non-sparse bitmap.
BDD's are acceptable, but are about a 2x slowdown. With various
optimizations that are going to be published in the next few months,
you can get bitmaps to use just as little memory as BDDs would, while
being much faster.

Anyway, i've attached the patch.
The two new .h files go include/llvm/ADT
the two new .cc files go into lib/VMCore

Of course, you can put them wherever you really want.

@llvmbot
Copy link
Collaborator Author

llvmbot commented Sep 19, 2007

Fixed

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 3, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla
Projects
None yet
Development

No branches or pull requests

1 participant