Skip to content

Commit ee8a5a5

Browse files
Chaitanya-Shaharevgvassilev
authored andcommitted
Add tags to all the blog posts
1 parent b29903f commit ee8a5a5

5 files changed

+33
-22
lines changed

_posts/2022-11-30-extend-clang-to-resugar-template-specialization-accesses.md

+2-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ sitemap: false
1616
author: Matheus Izvekov
1717
permalink: blogs/gsoc22_izvekov_experience_blog/
1818
date: 2022-11-30
19+
tags: gsoc clang llvm
1920
---
2021

2122
### Overview of the Project
@@ -61,7 +62,6 @@ naming context, without the need of tracking the template context. This
6162
approach, although more efficient, required some intrusive modifications on the
6263
way substitutions are represented in the AST.
6364
64-
6565
### Contributions
6666
6767
The main contributions to this project are listed here.
@@ -79,7 +79,6 @@ Pull Requests:
7979
7. [D131858 - Track the templated entity in type substitution](https://reviews.llvm.org/D131858)
8080
8. [D127695 - Implement Template Specialization Resugaring](https://reviews.llvm.org/D127695)
8181
82-
8382
### Contributions
8483
8584
1. Syntactic resugar of Non Type Template Parameters (NTTPs) is still under
@@ -99,7 +98,6 @@ type rules for syntactic sugar in STL will reduce the generation of errors in
9998
terms of desugared code, improving the relationship between the user's source
10099
program and the program evaluation.
101100
102-
103101
### Acknowledgements
104102
105103
I thank my mentors Richard Smith and Vassil Vasilev for their excellent
@@ -120,7 +118,7 @@ increase my confidence as a developer in the LLVM open community!
120118
121119
**Contact me!**
122120
123-
121+
124122
125123
Github Username: [mizvekov](https://github.com/mizvekov)
126124

_posts/2022-12-02-recovering-from-errors-in-clang-repl-and-code-undo.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ author:
2020
- Purva Chaudhari
2121
permalink: blogs/gsoc22_zhang_chaudhari_experience_blog/
2222
date: 2022-12-02
23+
tags: gsoc clang llvm
2324
---
2425

2526
### Overview of the Project
@@ -57,6 +58,7 @@ clang-repl: /home/purva/llvm-project/clang/include/clang/Sema/Sema.h:9406: clang
5758
Aborted
5859
(core dumped)
5960
```
61+
6062
and
6163
6264
```cpp
@@ -74,12 +76,10 @@ clang-repl> %undo
7476
clang-repl> float x = 24 // not an error
7577
```
7678

77-
7879
### Contributions
7980

8081
The main contributions to this project are listed here.
8182

82-
8383
Pull Requests:
8484

8585
1. [D123674 - Clang-Repl Error Recovery Bug Fix](https://reviews.llvm.org/D123674)
@@ -101,29 +101,37 @@ Pull Requests:
101101
extends the functionality used to recover from errors and adds functionality to
102102
recover the low-level execution infrastructure. Now you can do below in
103103
clang-repl:
104+
104105
```cpp
105106
clang-repl> int x = 42;
106107
clang-repl> %undo
107108
clang-repl> float x = 24; // not an error
108109
```
110+
109111
2. We fixed a bunch of bugs in Clang-Repl, by upstreamed ready-made patches in
110112
cling: Fix inline function in Clang-Repl. Take the example below:
113+
111114
```cpp
112115
inline int foo() { return 42; }
113116
int r3 = foo(); // This fails before my fix.
114117
```
118+
115119
More context: [cd64a427](https://github.com/llvm/llvm-project/commit/cd64a427efa0baaf1bb7ae624d4301908afc07f7)
116120
3. Partially fix incorrect return code in Clang-Repl. Take the example below:
121+
117122
```cpp
118123
clang-repl> BOOM!
119124
clang-repl> int x = 42;
120125
// This previously passed in the LLVM lit tests incorrectly
121126
```
127+
122128
4. Partially fix weak attribute usage in Clang-Repl. Take the example below:
129+
123130
```cpp
124131
int __attribute__((weak)) bar() { return 42; }
125132
auto r4 = printf("bar() = %d\n", bar()); // This fails before my patch. Note this is not supported in Windows yet.
126133
```
134+
127135
5. We fixed some issues in lambda usage in Clang-Repl.
128136
129137
### Conclusion
@@ -149,11 +157,10 @@ In the future, I'll continue my journey into the world of open source, and bring
149157
150158
**Contact us!**
151159
152-
160+
153161
154162
GitHub username: [junaire](https://github.com/junaire)
155163
156-
157164
Purva: [Webpage](https://purva-chaudhari.github.io/My-Portfolio/)
158165
159166
GitHub username: [Purva-Chaudhari](https://github.com/Purva-Chaudhari)

_posts/2022-12-07-shared-memory-based-jitlink-memory-manager.md

+17-8
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ sitemap: false
1414
author: Anubhab Ghosh
1515
permalink: blogs/gsoc22_ghosh_experience_blog/
1616
date: 2022-12-07
17+
tags: gsoc llvm jitlink memory-manager
1718
---
1819

1920
### Overview of the Project
21+
2022
LLVM JIT APIs include JITLink, a just-in-time linker that links together objects
2123
code units directly in memory and executes them. It uses the
2224
JITLinkMemoryManager interface to allocate and manage memory for the generated
@@ -28,13 +30,15 @@ memory and then when the code is generated, all the section contents are
2830
transferred through finalize calls.
2931

3032
#### Shared Memory
33+
3134
The main problem was that EPC runs on top of file descriptor streams like Unix
3235
pipes or TCP sockets. As all the generated code and data bytes are transferred
3336
over the EPC this has some overhead that could be avoided by using shared
3437
memory. If the two processes share the same physical memory pages then we can
3538
completely avoid extra memory copying.
3639

3740
#### Small code model
41+
3842
While we are at it, another goal was to introduce a simple slab-based memory
3943
manager. It would allocate a large chunk of memory in the beginning from the
4044
executor process and allocate smaller blocks from that entirely at the
@@ -53,16 +57,20 @@ int main() {
5357
return value + 1;
5458
}
5559
```
60+
5661
**Small code model**
62+
5763
```asm
5864
0000000000001119 <main>:
59-
1119: 55 push rbp
60-
111a: 48 89 e5 mov rbp,rsp
61-
111d: 8b 05 ed 2e 00 00 mov eax,DWORD PTR [rip+0x2eed] # 4010 <value>
62-
1123: 5d pop rbp
63-
1124: c3 ret
65+
1119: 55 push rbp
66+
111a: 48 89 e5 mov rbp,rsp
67+
111d: 8b 05 ed 2e 00 00 mov eax,DWORD PTR [rip+0x2eed] # 4010 <value>
68+
1123: 5d pop rbp
69+
1124: c3 ret
6470
```
71+
6572
**Large code model**
73+
6674
```asm
6775
0000000000001119 <main>:
6876
1119: 55 push rbp
@@ -81,10 +89,10 @@ int main() {
8189
Small code model is the default for most compilations so this is actually
8290
required to load ordinary precompiled code, e.g., from existing static archives.
8391

84-
8592
### My Approach
8693

8794
#### Memory Mappers
95+
8896
I introduced a new `MemoryMapper` abstraction for interacting with OS APIs at
8997
different situations. It has separate implementations based on whether the code
9098
will be executed in the same or different process. The `InProcessMemoryMapper`
@@ -102,6 +110,7 @@ now already in place in the executor processes so finalization is just a matter
102110
of sending the memory protections.
103111

104112
#### Slab-based allocator
113+
105114
Furthermore, I developed a slab-based memory allocator for JITLink, reserving a
106115
large region of memory in the address space of the target process on the first
107116
allocation. All subsequent allocations result in sub-regions of that to be
@@ -111,6 +120,7 @@ region, it also guarantees that JIT’d memory satisfies the layout constraints
111120
required by the small code model.
112121

113122
#### Concurrency problems
123+
114124
After the implmentation, I tried JIT linking the CPython interpreter to
115125
benchmark the implementation. We discovered that our overall CPU execution time
116126
decreased by 45% but somewhat paradoxically clock time increased by 45%. In
@@ -133,7 +143,6 @@ this to access memory at runtime.
133143
For a more detailed description and all the patches, please consult my
134144
[GSoC final report](https://compiler-research.org/assets/docs/Anubhab_Ghosh_GSoC2022_Report.pdf).
135145

136-
137146
### Acknowledgements
138147

139148
I would like to share my gratitude for the LLVM community members and my mentors
@@ -157,7 +166,7 @@ many applications.
157166

158167
**Contact me!**
159168

160-
169+
161170

162171
Github Username: [argentite](https://github.com/argentite)
163172

_posts/2023-05-10-accelerated-documentation-with-google-season-of-docs-2023.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ sitemap: false
1111
author: QuillPusher
1212
permalink: blogs/gsod23_quillpusher_experience_blog/
1313
date: 2023-05-10
14+
tags: gsod documentation llvm root clang-repl cppyy
1415
---
1516

1617
### How we got started
@@ -76,8 +77,6 @@ an effort. This project has set me off on a trajectory of self-improvement and
7677
learning, helping me identify how large, distributed communities work and what
7778
skills I need to acquire to advance in my career.” – [@QuillPusher] (Saqib)
7879

79-
80-
8180
[Student Success Stories]: https://compiler-research.org/stories/
8281

8382
[GSoD 2023 Case Study]: https://github.com/compiler-research/compiler-research.github.io/blob/master/assets/docs/gsod_casestudy_2023.pdf
@@ -97,4 +96,3 @@ skills I need to acquire to advance in my career.” – [@QuillPusher] (Saqib)
9796
[cppyy Enhancements]: https://github.com/compiler-research/CppInterOp/pull/160
9897

9998
[Numba Enhancements]: https://github.com/wlav/cppyy/pull/199
100-

_posts/2023-09-18-code-completion-in-clang-repl.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ sitemap: false
1212
author: Yuquan (Fred) Fu
1313
permalink: blogs/gsoc23_ffu_experience_blog/
1414
date: 2023-09-18
15+
tags: gsoc clang llvm
1516
---
1617

1718
### Overview of the Project
@@ -51,12 +52,11 @@ clang-repl> c.move(<tab>
5152
If users hit the `<tab`> key at the indicated position, listing all symbols
5253
would be distracting. It is easy to find out that among all declarations, only
5354
`c1`, `c2` and `s` are well-typed candidates. So an ideal code completion system
54-
should be able to filter out results using type information.
55+
should be able to filter out results using type information.
5556

5657
The project leverages existing components of Clang/LLVM and aims to provides
5758
context-aware semantic completion suggestions.
5859

59-
6060
### My Approach
6161

6262
The project mainly consists of two patches. The first patch involves building
@@ -98,7 +98,6 @@ main `ASTContext` to the code completion `ASTContext`.
9898

9999
<img src="/images/blog/cc2.gif" width="600" />
100100

101-
102101
### Future Work
103102

104103
**Pull Request** : [D159128](https://reviews.llvm.org/D159128)

0 commit comments

Comments
 (0)