Displaying 20 results from an estimated 2000 matches similar to: "Testing an LLVM pass"
2015 Mar 02
2
[LLVMdev] clang change function name
On Mon, Mar 02, 2015 at 12:12:34AM -0500, John Criswell wrote:
> On 3/2/15 12:07 AM, Haopeng Liu wrote:
> >Got it, thanks. But in my pass, I use function name to locate. Can I
> >disable mangling in clang?
>
> No, but you can probably fine a library that can either mangle the original
> name or demangle the name you're seeing in the LLVM bitcode.
>
> As an FYI,
2016 May 10
2
Some questions about phase ordering in OPT and LLC
> >> You can look at AddOptimizationPasses() in opt.cpp.
> >
> > As far as I understand, the two passmanager do not interleave their
> > passes. It first runs all the function passes and below. Then all the
> > module passes. So if you specify:
> >
> > opt -mymodulepass0 -myfunctionpass -mymodulepass1
> >
> > What you actually get is:
2015 Nov 06
2
Repeated application of optimization passes
Within the LLVM pass manager infrastructure, suppose we have two
transformation passes, pass A makes some improvements, then pass B does
likewise, but this creates opportunities for pass A to create further
improvements (e.g. suppose B was function inlining) so it's desirable to
run A again.
How does the LLVM pass manager currently deal with this?
-------------- next part --------------
An
2018 Dec 07
2
Testing compiler reliability using Csmith
Thanks, Vedant. Yes, we have done a lot of testing of Clang/LLVM (and GCC)
in the past several years (more details at
https://people.inf.ethz.ch/suz/emi/index.html):
[GCC/LLVM bugs: *1,602* (total) / *1,007* (fixed)]
[Reports: GCC (link1 <http://tinyurl.com/ojzdt78>, link2
<http://tinyurl.com/oxlkmjc>, link3 <http://tinyurl.com/jd3jnl3>, link4
2018 Dec 12
2
Testing compiler reliability using Csmith
You may also be interested in the following resources on compilers
correctness (articles, software, and talks -- from the general topics to
the ones specifically focused on testing, validation, and verification):
https://github.com/MattPD/cpplinks/blob/master/compilers.correctness.md
Best regards,
Matt P. Dziubinski
On 12/7/2018 20:19, Philip Reames via llvm-dev wrote:
> There's also
2018 Dec 10
2
Migrate utils/ Python 2 scripts to Python 3
On Fri, Nov 30, 2018 at 03:25:10PM +0100, Serge Guelton via llvm-dev wrote:
> On Thu, Feb 01, 2018 at 04:47:03PM -0500, James Y Knight via llvm-dev wrote:
> > That said, I do think it could make sense to prepare llvm for the world in
> > which "python" is python3 on some systems. So, I'd propose the following:
> > 1. Change all #! lines to say
2019 Dec 03
5
clang and -D_FORTIFY_SOURCE=1
Hi folks (CCing llvm-dev, but that's probably more of a cfe-dev topic),
As a follow-up to that old thread about -D_FORTIFY_SOURCE=n
http://lists.llvm.org/pipermail/cfe-dev/2015-November/045845.html
And, more recently, to this fedora thread where clang/llvm -D_FORTIFY_SOURCE
support is claimed to be only partial:
https://pagure.io/fesco/issue/2020
I dig into the glibc headers in
2020 Jul 15
3
[RFC] Pass return status
Hi folks,
some more information on this feature - as a reminder I started one month
ago to work on an expensive check that would verify that pass return status
is correctly reported by passes, i.e. no pass return « IR not modified »
while actually modifying it.
It took ~20 pass fixes to achieve that goal, as many passes were not
respectful of that contract, but as
of
2019 May 09
4
Making llvm-xyz -help useful
Hi folks,
today, I wanted to concatenate two .ll, and naively typed:
$ llvm-cat -help
This is the not-so-helpful output I had:
OVERVIEW: Module concatenation
USAGE: llvm-cat [options] <input files>
OPTIONS:
General options:
-aarch64-neon-syntax - Choose style of NEON code to emit from AArch64 backend:
=generic
2020 Jul 16
2
[RFC] Pass return status
> Out of curiosity, does change here include changes to names, and other
semantically-irrelevant changes (e.g., changing the order of operands in a
PHI)?
The hashing function used to detect changes is currently very simple: it
only accounts for instruction opcode and order. So
some semantically-irrelevant changes are ignored (as well as some relevant
changes), and some are not.
Permuting two
2020 Jan 29
5
[RFC] Python 2 / Python 3 status
Hi folks,
Python2 has reached end of support[0], and many core Python packages are
dropping pthon 2 support[1].
This is a subject that raises periodically on this mlist, with a rather strong
no in 2018 [-1] and a slow move in 2019 [-2, -3].
Even if Python is not a core build requirement, it's used during some
configurations steps (e.g. in the cmake export_executable_symbols function),
for
2020 Oct 09
2
llvmbuildectomy
Hi Folks,
Although LLVM now relies on cmake for its build configuration, it still calls an
external Python script, namely llvm-build, to manage component dependecies,
activation or deactivation of target componenents and generating description for
llvm-config.
This system is documented in http://llvm.org/docs/CommandGuide/llvm-build.html
and https://llvm.org/docs/LLVMBuild.html.
Several
2020 Jun 11
4
[RFC] Pass return status
Hi folks,
Per the documentation[0], whenever an LLVM pass doesn't modify the IR it's run on, it
should return `false`--it's okay to return `true` if no change happen, just less
optimal. In the New PM area, this is generally translated into a `PreservedAnalyses::all()`.
https://reviews.llvm.org/D80916 provides an `EXPENSIVE_CHECK` that computes a
hash of the IR before and after the
2017 Nov 16
2
About mismatching calling conventions
Hi llvm-dev,
Every now and then, when building a direct ``CallInst`` either from IRBuilder
or through ``Create*``, I have a latent bug because the calling
convention (CC) expected by the function is not set on the call, and I need
to manually call ``setCallingConv``.
Now, from LangRef#calling-conventions,
The calling convention of any pair of dynamic caller/callee must
match, or the
2018 Jan 08
1
LLVM Social - Paris: January 30th, 2018
The next LLVM social in Paris will happen on January 30th, 2018.
Everyone interested in LLVM, Clang, lldb, Polly, lld, ... is invited to
join.
Event details, including registration (free but mandatory) at
http://www.meetup.com/LLVM-Clang-social
For this meetup, Adrien Guinet, Serge Guelton and Juan Manuel Martinez will
talk about the "Challenges when building an LLVM bitcode
2020 Oct 13
2
[RFC] Python 2 / Python 3 status, final step(s)
Hi Folks,
Now that LLVM 11.0.0 has been released, it's time to prepare for the final step
envisionned in the previous RFC named *[RFC] Python 2 / Python 3 status* [0],
ie. requiring Python3.6 for LLVM 12.0.0, to be released in 2021.
At least Fedora already only ships Python3 and we didn't have much bugs reported
wrt. Python compatibility for the LLVM toolchain.
Indeed, all Python scripts
2015 Jul 17
3
[LLVMdev] LLVM instrumentation
Yeah I have already see pintool but I need this to work with ARM and Intel.
If I remember correctly, pintool does not work on ARM (or quite bad).
My goal with the instrumentation is, once I have the information (time + call), to choose (during a second compilation) if some of my passes are applicable or not.
Greetings,
Johan
On 17 Jul 2015, at 16:09, Kenneth Adam Miller <kennethadammiller
2015 Jul 17
2
[LLVMdev] LLVM instrumentation
The PGO was my first guess but I can get a lot of information.
At first, I follow the explanation at http://clang.llvm.org/docs/UsersManual.html#profiling-with-instrumentation but instead of llvm-profdata merge, I used llvm-profdata show *.profraw.
Sadly, the information I get is the total number of function, the maximum function count and the maximum internal block count.
Do you know if you
2018 Dec 07
2
Testing compiler reliability using Csmith
Hello everyone!
We are working on writing a paper about testing the reliability of C compilers by using Csmith (a random C99 program generator).
A previous testing effort, using Csmith, found 202 LLVM bugs, which represented 2% of all reported bugs at that time (PDF: https://www.flux.utah.edu/download?uid=114 <https://www.flux.utah.edu/download?uid=114>): . However, after this paper was
2020 Mar 24
6
LLVM 10.0.0 Release
I am pleased to announce that LLVM 10 is now available.
Get it here: https://llvm.org/releases/download.html#10.0.0
This release is the result of the LLVM community's work over the past
six months (up to to e26a78e7085 on master plus commits up to
d32170dbd5b on the release/10.x branch).
Some highlights include:
- C++ Concepts support in Clang
- Clang no longer runs in a separate process