Displaying 4 results from an estimated 4 matches for "edgehash".
2017 Jul 31
3
[RFC] Profile guided section layout
Hi Rafael,
On 07/31/2017 04:20 PM, Rafael Avila de Espindola via llvm-dev wrote:
> However, do we need to start with instrumentation? The original paper
> uses sampling with good results and current intel cpus can record every
> branch in a program.
>
> I would propose starting with just an lld patch that reads the call
> graph from a file. The format would be very similar to
2017 Jul 31
2
[RFC] Profile guided section layout
...ionBase *> Sections;
+ int64_t Size = 0;
+ uint64_t Weight = 0;
+ };
+
+ struct Edge {
+ NodeIndex From;
+ NodeIndex To;
+ mutable uint64_t Weight;
+ bool operator==(const Edge Other) const {
+ return From == Other.From && To == Other.To;
+ }
+ };
+
+ struct EdgeHash {
+ std::size_t operator()(const Edge E) const {
+ return llvm::hash_combine(E.From, E.To);
+ };
+ };
+
+ std::vector<Node> Nodes;
+ std::unordered_set<Edge, EdgeHash> Edges;
+
+ auto InsertOrIncrementEdge = [](std::unordered_set<Edge, EdgeHash> &Edges,
+...
2017 Jun 15
7
[RFC] Profile guided section layout
...ionBase *> Sections;
+ int64_t Size = 0;
+ uint64_t Weight = 0;
+ };
+
+ struct Edge {
+ NodeIndex From;
+ NodeIndex To;
+ mutable uint64_t Weight;
+ bool operator==(const Edge Other) const {
+ return From == Other.From && To == Other.To;
+ }
+ };
+
+ struct EdgeHash {
+ std::size_t operator()(const Edge E) const {
+ return llvm::hash_combine(E.From, E.To);
+ };
+ };
+
+ std::vector<Node> Nodes;
+ std::unordered_set<Edge, EdgeHash> Edges;
+
+ auto InsertOrIncrementEdge = [](std::unordered_set<Edge, EdgeHash> &Edges,
+...
2017 Aug 01
2
[RFC] Profile guided section layout
...ionBase *> Sections;
+ int64_t Size = 0;
+ uint64_t Weight = 0;
+ };
+
+ struct Edge {
+ NodeIndex From;
+ NodeIndex To;
+ mutable uint64_t Weight;
+ bool operator==(const Edge Other) const {
+ return From == Other.From && To == Other.To;
+ }
+ };
+
+ struct EdgeHash {
+ std::size_t operator()(const Edge E) const {
+ return llvm::hash_combine(E.From, E.To);
+ };
+ };
+
+ std::vector<Node> Nodes;
+ std::unordered_set<Edge, EdgeHash> Edges;
+
+ auto InsertOrIncrementEdge = [](std::unordered_set<Edge, EdgeHash> &Edges,
+...