[PATCH] DI: Fold constant arguments into a single MDString

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Sep 22 17:37:39 PDT 2014


> On 2014-Sep-19, at 17:29, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> 
>> This patch addresses the first stage of PR17891 by folding constant
>> arguments together into a single MDString.  Integers are stringified and
>> a `\0` character is used as a separator.
> 
> I've attached updated LLVM and clang patches, rebased this afternoon
> with all tests in `check-all` passing.  I believe it addresses David's
> comments as well.
> 
> There are an insane number of changes in the testcases, but changing the
> schema of the dwarf tags makes that inevitable -- almost every line of
> metadata had to change.  I look forward to "stage 2" of PR17891, which
> can be more incremental.
> 
> Let me know if the updated patches look good.
> 
> Two caveats that came to mind while writing this:
> 
>  - I haven't updated `docs/SourceLevelDebugging.rst`.  I'll send a
>    patch for that Monday-ish.

Included in the attached LLVM patch.

>> Any size measurements/test results (does this bootstrap?) on this?
> 
> Before committing, I'll use a release+asserts clang to build:
> 
>  - opt with `-g -flto`

I profiled `ld64`'s link of `llvm-lto`:

  - baseline: 8m21s, 16.41 GB
  - modified: 7m56s, 14.25 GB

The memory change is about what I expected.

>  - clang with `-g`

Bootstrap was clean.

--

Rebased patches attached.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-DI-Header-MDString-llvm-v2.patch
Type: application/octet-stream
Size: 2147079 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140922/9de97c70/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-DI-Header-MDString-clang-v2.patch
Type: application/octet-stream
Size: 93100 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140922/9de97c70/attachment-0001.obj>


More information about the llvm-commits mailing list