Viewing profile — nikic
nikic
HN member- Joined
- Fri, Dec 16, 2011, 8:09 AM UTC
- HN karma
- 1,920
- Public activity
- 219 items
- HN profile
- View on Hacker News ↗
About nikic
Recent public activity
-
comment
Comment #46601190
> Is there any implicit understanding in the community that byte types will inevitably be added to LLVM? Among the people who are familiar with such things, yes. An RFC on the topi…
-
comment
Comment #46594084
That was ambiguously phrased. The point I was trying to make here is that we don't have the situation that is very common for open-source projects, where a project might nominally …
-
comment
Comment #46592613
Yes, the Orc C API follows different rules from the rest of the C API ( https://github.com/llvm/llvm-project/blob/501416a755d1b85ca1... ).
- story
-
comment
Comment #46376493
This particular case isn't really due to pattern matching -- it's a result of a generic optimization that evaluates the exit value of an add recurrence using binomial coefficients …
-
comment
Comment #45471649
This depends a lot on what you're doing with LLVM. If you are just using LLVM as a code generation backend for your language frontend, you generally do not need an LLVM fork. For e…
-
comment
Comment #45471630
> LLVM is a trap. Is it? I think Rust is a great showcase for why it isn't. Of course it depends somewhat on your compiler implementation approach, but actual codegen-to-LLVM tends…
-
comment
Comment #44437436
That's a great point. I initially thought we could assume no exposure for loads with non-pointer-compatible TBAA, but you are right that this is not correct if the memory has been …
-
comment
Comment #44437131
That type punning through memory does not expose or synthesize memory. There are some possible variations on this, but the most straightforward is that pointer to integer transmute…
-
comment
Comment #44427669
At least at a skim, what this specifies for exposure/synthesis for reads/writes of the object representation is concerning. One of the consequences is that dead integer loads canno…
-
comment
Comment #44099389
> Interestingly, Windows on ARM hasn't made it up to Tier 1 yet. An RFC for that has been submitted recently: https://github.com/rust-lang/rfcs/pull/3817
-
comment
Comment #43798499
One peculiar thing about the benchmark results is that disabling individual UB seems to fairly consistently reduce performance without LTO, but improve it with LTO. I could see how…
-
comment
Comment #43798423
They do a bit more than that. One of the options (-disable-object-based-analysis under AA2) disables the assumption that distinct identified objects do not alias, which is disablin…
-
comment
Comment #43798312
Fun fact: GCC decided to adopt Clang's (old) behavior at the same time Clang decided to adopt GCC's (old) behavior. So now you have this matrix of behaviors: * Old GCC: Initializes…
-
comment
Comment #42909769
Where possible, undefined behavior at the LLVM IR level is always optional, controlled by various flags, attributes and metadata. Things like signed integer overflow, or even the f…
- story
-
comment
Comment #42388985
NULL == NULL was already defined -- but NULL <= NULL wasn't :)
-
comment
Comment #40835688
Huh, this is interesting. Normally the reason to become a CNA is to reduce the amount of bogus CVEs that are issued for your project due to security researchers trying to pad their…
-
comment
Comment #40760512
LLVM actually also supports instruction-level granularity for fast-math (using essentially the same mechanism as things like unchecked_add), but Clang doesn't expose that level of …
-
comment
Comment #40623300
The background here is that "ctpop https://github.com/llvm/llvm-project/issues/94829 ).
- story
-
comment
Comment #38754489
> It's true that MSVC doesn't have an equivalent of -fno-strict-aliasing, but that's because it just doesn't apply optimizations that assume strict aliasing in the first place. Adm…
-
comment
Comment #38752408
> People can (and do) point at the C spec for fault of this and it is true that if the C spec was more strict then these compilers would not have the free pass to do these crazy mi…
-
comment
Comment #38752256
The main performance-critical undefined behavior in C is provenance. The rest can be removed without major performance impact. (Which is not to say they can't give you 10% on speci…
-
comment
Comment #37849213
What's with RISC-V and these peculiar extension names?