Recent llvm Intrinsics lookup updates


(Harlan Haskins) #1

Hey all,

There were some huge improvements in LLVM’s intrinsics lookup that dramatically reduce object file size and compile time.

Specifically, llvm/IR/Intrinsics.h gained lookupLLVMIntrinsicByName, which replaces 44k lines of tablegen’d code in llvm/IR/Intrinsics.gen with a binary search. It seems to have reduced object size by 400KB and compile time by about 35s. We include Intrinsics.gen in lib/AST/Builtins.cpp.

We should look into cherry-picking those changes into apple/swift-llvm to see if we can benefit from those compile time and size improvements.

The relevant SVN revisions are r258757, r258774, r258871, r258875, and r258897.

— Harlan


(Ben Langmuir) #2

Hey all,

There were some huge improvements in LLVM’s intrinsics lookup that dramatically reduce object file size and compile time.

Specifically, llvm/IR/Intrinsics.h gained lookupLLVMIntrinsicByName, which replaces 44k lines of tablegen’d code in llvm/IR/Intrinsics.gen with a binary search. It seems to have reduced object size by 400KB and compile time by about 35s. We include Intrinsics.gen in lib/AST/Builtins.cpp.

We should look into cherry-picking those changes into apple/swift-llvm to see if we can benefit from those compile time and size improvements.

The relevant SVN revisions are r258757, r258774, r258871, r258875, and r258897.

Can we just wait until stable is merged forward (+Michael G who has been handling these merges)? That will pick these up “for free” rather than trying to cherry-pick them out of order.

···

On Mar 11, 2016, at 5:21 PM, Harlan Haskins via swift-dev <swift-dev@swift.org> wrote:

— Harlan
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Harlan Haskins) #3

Should just be fine, though it'll necessitate source changes in Builtins.cpp.

-- Harlan

···

On Mar 11, 2016, at 5:31 PM, Ben Langmuir via swift-dev <swift-dev@swift.org> wrote:

On Mar 11, 2016, at 5:21 PM, Harlan Haskins via swift-dev <swift-dev@swift.org> wrote:

Hey all,

There were some huge improvements in LLVM’s intrinsics lookup that dramatically reduce object file size and compile time.

Specifically, llvm/IR/Intrinsics.h gained lookupLLVMIntrinsicByName, which replaces 44k lines of tablegen’d code in llvm/IR/Intrinsics.gen with a binary search. It seems to have reduced object size by 400KB and compile time by about 35s. We include Intrinsics.gen in lib/AST/Builtins.cpp.

We should look into cherry-picking those changes into apple/swift-llvm to see if we can benefit from those compile time and size improvements.

The relevant SVN revisions are r258757, r258774, r258871, r258875, and r258897.

Can we just wait until stable is merged forward (+Michael G who has been handling these merges)? That will pick these up “for free” rather than trying to cherry-pick them out of order.

— Harlan
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev