Programming: LLVM, Perl and Much More

-
The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source
Last week we reported on "FC" as a new LLVM Fortran compiler targeting the new MLIR intermediate representation. That new Fortran compiler is now public and open-source.
While the Flang compiler is being upstreamed at the moment, "FC" is being worked on by consulting firm start-up CompilerTree as an LLVM Fortran compiler that has shifted focus from using the conventional LLVM IR to MLIR as LLVM's new IR developed by Google with a focus on machine learning.
-
LLVM/Clang 10.0 Adds AMD Zen 2 Scheduler Model For Optimized Code Generation
It's too bad that it has taken so many months after AMD Zen 2 based Ryzen and EPYC processors began shipping to see this compiler support in place, but the good news now is that for the upcoming release of LLVM 10.0 is now the Zen 2 scheduler model being added to the "znver2" target.
Going back to before the Zen 2 processors began shipping last summer, in February AMD Znver2 support was added for LLVM Clang 9.0. But like the GCC compiler support at the time, it added new instructions supported by these CPUs but didn't update the scheduler model / cost tables. In July AMD-partner SUSE added Znver2 tuning to GCC including a new scheduler model that was wired up for GCC 10 and back-ported to GCC 9.2.
-
AMD Begins Providing PowerPC Builds Of Their "AOMP" GPU Compiler
AOMP is the AMD GPU compiler for OpenMP and HIP support on GPUs as part of Radeon Open Compute 3.0 (ROCm 3.0). Now they have begun providing PowerPC 64-bit LE builds of AOMP as part of allowing Radeon GPU compute to happen on POWER9 systems.
As reported on in December, we've been seeing AMDKFD compute driver work for PowerPC that ultimately landed in Linux 5.5. This work has been continuing in user-space with their AOMP GPU compute compiler now also working for PowerPC and AMD even providing PowerPC 64-bit binaries. The actual AOMP lifting for PPC64LE support isn't much considering this compiler is based on LLVM Clang that has long supported the architecture.
-
data-types for representing stream-processing programs
This year I want to write much more about my PhD work on my blog, and here's my first effort. Most of this material has been languishing as a draft for over a year, so it's past time to get it out!
-
KDAB Challenge Solutions
Proxy types can be tricky. If we got a QChar (or a reference to a QChar) by accessing a character in a QString with the operator[] as most people would expect to, the automatic type deduction requested by auto current = hello[i] would deduce that current is of type QChar.
But QString::operator[] does not return a QChar. It returns a QCharRef. Even if we think of it as a reference to a QChar, the compiler does not, and the automatic type deduction can not remove the reference part like it would if the return type was a proper reference (QChar&).
This means that current will be a value of type QCharRef. When we modify it, it will modify the original string (contrary to what most people expect because of C++’s value semantics).
One of the solutions here is not to use automatic type deduction and explicitly specify the type of current to be QChar.
-
Introducing GVariant schemas
GLib supports a binary data format called GVariant, which is commonly used to store various forms of application data. For example, it is used to store the dconf database and as the on-disk data in OSTree repositories.
The GVariant serialization format is very interesting. It has a recursive type-system (based on the DBus types) and is very compact. At the same time it includes padding to correctly align types for direct CPU reads and has constant time element lookup for arrays and tuples. This make GVariant a very good format for efficient in-memory read-only access.
Unfortunately the APIs that GLib has for accessing variants are not always great. They are based on using type strings and accessing children via integer indexes. While this is very dynamic and flexible (especially when creating variants) it isn’t a great fit for the case where you have serialized data in a format that is known ahead of time.
-
Create PDF using Perl/PDF::API2
I wrote a practical and detailed description of Perl's PDF::API2.
It turns out that PDF::API2 is a library for performing necessary and sufficient PDF operations.
-
Paws XXXXVIII (Way too many 'I' s)
Well I think it is a first here in the Paws patrol. I spent the day plunging away with CloudFront and I have no new Paws issues but I did learn and important practical lesson about using CloudFront.
-
Organize your email with Notmuch
Last year, I brought you 19 days of new (to you) productivity tools for 2019. This year, I'm taking a different approach: building an environment that will allow you to be more productive in the new year, using tools you may or may not already be using.
Maildir is probably one of the most useful mail storage formats out there. And there are a LOT of tools to help with managing your mail. The one I keep coming back to is a little program called Notmuch that indexes, tags, and searches mail messages. And there are several programs that work with Notmuch to make it even easier to handle a large amount of mail.
[...]
Tagging messages in bulk is probably more useful, though, since manually updating tags at every run can be really tedious.
[...]
In the coming days, I'll show you some other mail clients that will likely integrate with tools you already use. In the meantime, check out some of the other tools that work with Maildir mailboxes—you might find a hidden gem I've not tried yet.
-
- Login or register to post comments
Printer-friendly version
- 3958 reads
PDF version
More in Tux Machines
- Highlights
- Front Page
- Latest Headlines
- Archive
- Recent comments
- All-Time Popular Stories
- Hot Topics
- New Members
How to create bootable Ubuntu 20.04 on windows 10
I think so; a few weeks back, I was doing something on my Ubuntu 20.04. Suddenly my friend knocks on my door, and he was curiously peeking on my laptop screen. I asked what happen, Benhur?
Benhur replied, what are you doing on your laptop, It is totally different from my laptop screen, and It fascinated me. Will you tell me what it is?
| Audio/Video: LHS, Going Linux, and DistroTube
|
Security Leftovers
| Android Leftovers
|
Recent comments
5 hours 12 min ago
10 hours 18 min ago
10 hours 20 min ago
16 hours 19 min ago
16 hours 45 min ago
20 hours 3 min ago
20 hours 41 min ago
20 hours 59 min ago
21 hours 2 min ago
23 hours 22 min ago