JinGu Kang | 18 Dec 16:20 2014

Please change the comment of 'insert' member function of SmallPtrSetImpl

Hi all,

I have a compilation failure with 'insert' member function of 
SmallPtrSetImpl class because the return value is changed from r222334. 
But the comment of the function is same with before as follows:

   /// insert - This returns true if the pointer was new to the set, 
false if it
   /// was already in the set.
   std::pair<iterator, bool> insert(PtrType Ptr) {
     auto p = insert_imp(PtrTraits::getAsVoidPointer(Ptr));
     return std::make_pair(iterator(p.first, CurArray + CurArraySize), 
p.second);
   }

If the comment is changed, please change it.

Thanks,
JinGu Kang
Jyoti Rajendra Allur | 18 Dec 13:06 2014

llvm regression hangs at 99% progress in TC Support/SupportTests/ProgramTest.TestExecuteAndWaitTimeout

Hi All,

In the process of resubmitting a patch which had caused a regression in all targets build, I have been trying to run llvm regression but encountered a weird problem.

Regression hangs at 99% in TC ProgramTest.TestExecuteAndWaitTimeout as seen below.

 

[100%] Running all regression tests
lit.py: lit.cfg:195: note: using clang: '/home/jyoti.allur/LLVM_Submit_25_Sept/build/./bin/clang'
lit.py: lit.cfg:332: note: Did not find clang-interpreter in /home/jyoti.allur/LLVM_Submit_25_Sept/build/./bin:/home/jyoti.allur/LLVM_Submit_25_Sept/build/./bin
lit.py: lit.cfg:271: note: Did not find llvm-go in /home/jyoti.allur/LLVM_Submit_25_Sept/build/./bin
                                                                  -- Testing: 20020 tests, 8 threads --
 99% [====================================================================================================================================================-] ETA: 00:00:00
^ZVM-Unit :: Support/SupportTests/ProgramTest.TestExecuteAndWaitTimeout
[1]+  Stopped                 make -j8 check-all

 

The flags used for compilation are
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="all" ../llvm

make -j8 check-all

 

Could someone point out why this is happening and how I could fix this ?

 

Regards,

Jyoti Allur

_______________________________________________
LLVM Developers mailing list
LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Jonathan Roelofs | 16 Dec 15:27 2014

Re: Newbee question: LLVM backend regression tests for thumb1 targets on simulator possible?


On 12/16/14 3:53 AM, Kristof Beyls wrote:
> I've been wondering too about how to get better ARM v6m compile-and-execute
> testing going.
>
> As you say Jon, the non-execution-based regression tests are surprisingly
> good at catching issues; but they're no full substitute for executing the
> code produced by the backend for a reasonably-sized test suite.
>
> If somehow it would be possible to compile and run the LLVM test-suite
> for v6m, I think that would be a good step forward. It would also allow
> to get a buildbot going without too much effort continuously checking
> basic correctness of v6m code generation.
>
> My guess is that the biggest hurdle would be to get linux or a similar
> operating system going on a v6m/thumb1 simulator. Does anyone have an idea
> if this is feasible or completely impossible?
I'm working on a baremetal cross toolchain, and I would like to set up such a 
buildbot. There are several pieces needed before that can happen though, and the 
important one is remote testing support in LIT (which I'm working on)... in due 
time :)

Jon

--

-- 
Jon Roelofs
jonathan <at> codesourcery.com
CodeSourcery / Mentor Embedded
Bjoern Haase | 16 Dec 12:03 2014
Picon

Re: Newbee question: LLVM backend regression tests for thumb1 targets on simulator possible?

Am 16.12.2014 11:53, schrieb Kristof Beyls:

> If somehow it would be possible to compile and run the LLVM test-suite
> for v6m, I think that would be a good step forward. It would also allow
> to get a buildbot going without too much effort continuously checking
> basic correctness of v6m code generation.

IIRC, any linux will be requiring some MMU unit? If I understand 
correctly, the v6m instruction set is just a binary compatible subset of 
v7. So what about generating code with restrictions for v6m and running 
tests on some linux on, say, A15 machine?

Björn.
Sanjoy Das | 16 Dec 08:09 2014

interest in an .eh_frame parser in llvm?

Hi all,

Our use case for LLVM requires us to parse the .eh_frame sections
emitted by MCJIT (for callee-saved-register spill slots, amongst other
things).  Does it make sense to have an in-tree parser for .eh_frame,
given that it will make such tasks a lot easier?

-- Sanjoy
Richard Sandiford | 16 Dec 09:30 2014

Code ownership for SystemZ port

Hi,

I'd like to step down as code owner for the SystemZ port and nominate
Ulrich Weigand to take over.  Sorry for not doing this sooner.

Thanks,
Richard
Ulrich Weigand | 18 Dec 14:57 2014
Picon

Re: Code ownership for SystemZ port


Richard Sandiford wrote:

>I'd like to step down as code owner for the SystemZ port and nominate
>Ulrich Weigand to take over.  Sorry for not doing this sooner.

I'd be happy to take over that role.

Thanks for all your work on SystemZ, Richard!

Bye,
Ulrich
Renato Golin | 18 Dec 11:55 2014

LIT Verbose

Folks,

Some of our CMake buildbots are failing to timeout, and I believe it's
something to do with how the output comes from the LIT tests, even
though we add -v to LIT_ARGS.

When the "check-all" stage runs, the output stops at the "Running
tests" message and only prints the rest of the output (including all
tests that pass, fail, etc) at the end.

I believe this has to do with ninja holding off the stream until the
job actually finishes, but I'm not seeing this when I run ninja
manually, which hints as to how the terminal is setup for buildbot.

Does anyone have a good hint for me to fix this?

cheers,
--renato
Eric Christopher | 17 Dec 20:10 2014
Picon

Re: Newbee question: LLVM backend regression tests for thumb1 targets on simulator possible?



On Wed Dec 17 2014 at 10:51:51 AM Kristof Beyls <kristof.beyls <at> arm.com> wrote:
I've been wondering too about how to get better ARM v6m compile-and-execute
testing going.

As you say Jon, the non-execution-based regression tests are surprisingly
good at catching issues; but they're no full substitute for executing the
code produced by the backend for a reasonably-sized test suite.

If somehow it would be possible to compile and run the LLVM test-suite
for v6m, I think that would be a good step forward. It would also allow
to get a buildbot going without too much effort continuously checking
basic correctness of v6m code generation.

My guess is that the biggest hurdle would be to get linux or a similar
operating system going on a v6m/thumb1 simulator. Does anyone have an idea
if this is feasible or completely impossible?


Not sure feasibility of the particular implementation, but qemu + linux works pretty well for testing other targets.

-eric
 
Thanks,

Kristof

> -----Original Message-----
> From: llvmdev-bounces <at> cs.uiuc.edu [mailto:llvmdev-bounces <at> cs.uiuc.edu]
> On Behalf Of Jonathan Roelofs
> Sent: 15 December 2014 18:31
> To: Bjoern Haase; llvmdev <at> cs.uiuc.edu
> Subject: Re: [LLVMdev] Newbee question: LLVM backend regression tests
> for thumb1 targets on simulator possible?
>
>
>
> On 12/15/14 4:29 AM, Bjoern Haase wrote:
> >
> > Hello,
> >
> > as a newbee, I'd appreciate some support on regression test setup.
> >
> > Specifically, I am interrested in the feature of tail call
> > optimizations for the ARM v6m targets. This feature currently seems to
> > be completely deactivated at the moment (v6m being based on thumb1
> > ?!). According to my code-reading, this feature will involve some
> > modifications in epilogue generation.
> >
> > My work on a gcc backend did show me that for a beginner like me, it
> > is rather likely that the first attempts will break something.
> :)
> >
> > Thus, being completely new to the llvm project I think that it's
> > essential to first establish a suitable regression test setup. My plan
> > is to run the tests for the v4t platform in thumb-only mode where free
> > simulators are available and which behaves (at least with respect to
> > the
> > epilogue) very much like v6m.
> Why not test your v6m changes on a Cortex-m0 QEMU? Semihosted
> applications are pretty easy to get going, something like:
>
> $ qemu-system-arm -semihosting -M integratorcp -cpu cortex-m0 -kernel
> a.out
>
> Thumv4t support is a bit spotty in llvm as it's not very well tested.
> The problem I run into most (and fixed several times), is that thumbv4t
> doesn't have a lo->lo mov instruction that doesn't clobber cpsr. That
> being said, it does work for the most part... just something to watch
> out for.
> >
> >  From former work on gcc I'm used to the possibilty to run regression
> > tests in a simulator for the target platform (there with the expect
> > script mechanism). In the documentation on the web, I did, however,
> > not yet find information on a comparable feature for llvm.
> >
> > Therefore the specific questions:
> >
> > - Is there a mechanism to run backend testsuite runs in a simulation
> > framework and if yes, could you give me a hint on how to find
> > information
> Not that I know of, no.
>
> I routinely run the libc++ & libc++abi test suites in QEMU, but that's
> more of a whole-toolchain test, rather that just a backend test. You can
> get surprisingly far without simulator testing, so for most things, LLVM
> doesn't use it for testing. This makes it easier for any random
> developer to check out the llvm sources, build them, and run the
> testsuite, and not have to have simulators installed for all the
> different backends.
> > - If not, how is regression testing for the thumb1 targets currently
> > implemented?
> We use the LIT framework http://llvm.org/docs/CommandGuide/lit.html to
> test the compiler. Mostly this means feeding in llvm IR, and using
> FileCheck http://llvm.org/docs/CommandGuide/FileCheck.html (which is
> basically a glorified
> grep) to verify that the assembly produced is the same as what the test
> expects to be generated.
>
> To run these tests, use the 'make check-all' target from the build
> directory.
>
>
> Cheers,
>
> Jon
> >
> > Yours,
> >
> > Björn Haase
> >
> > P.S.: Of course, any hint with respect to sibling call optimization
> > would also be appreciated in a second step. I actually already found
> > some helpful information in the sources.
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> --
> Jon Roelofs
> jonathan <at> codesourcery.com
> CodeSourcery / Mentor Embedded
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





_______________________________________________
LLVM Developers mailing list
LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
_______________________________________________
LLVM Developers mailing list
LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Hanbing Li | 16 Dec 16:03 2014
Picon
Picon

Vectorization and ARM

Dear list,

I have several questions about the Vectorization of LLVM:

1. As I found, -O3 have already included loop vectorization and slp vectorization (llvm3.3 and later version). So that means when I only use -O3, are both vectorizations applied?
And when I use -O3 -fno-vectorize, means that all the optimizations are applied except loop vectorization?

Why did he add "-mllvm -unroll-allow-partial -mllvm -unroll-runtime -funsafe-math-optimizations -ffast-math" beyond -O3? I think this report was talking about llvm3.2, while in llvm3.3 or later version, do these options have important significance? 
Another thing is the autovectorization mentioned in this report, what's the different between the normal vectorization and autovectorization?
If autovectorization is important, how to use it? (Because "-mllvm -vectorize (not worked) -mllvm -bb-vectorize-aligned-only ")

3. When I want to use vectorization on ARM (especially for neon), which option do I need to add? Just -mfpu=neon? Is some information like "-target armv7l -mfloat-abi=hard" needed?

Thanks for your attention.

Sincerely,

Hanbing


_______________________________________________
LLVM Developers mailing list
LLVMdev <at> cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Christophe Lyon | 16 Dec 12:33 2014

Running ASan tests on AArch64

Hi,

I would like to run ASan tests on AArch64, to make sure I don't break
them while doing some cleanup.

Since it seems that
http://clang.llvm.org/get_started.html
is outdated, here is how I built my clang toolchain:
- checkout LLVM, Clang and compiler-rt
- add clang and compiler-rt symlinks into llvm/tools and llvm/projects
- call cmake:
  cmake ../llvm_tmp_src -DCMAKE_BUILD_TYPE=Release ../llvm_tmp_src/
- build:
- make -j4

This seemed to work, after I patched compiler-rt/cmake/config-ix.cmake
and replaced -march=aarch64 with -march=armv8-a.

At this point, make check-asan does not work:
make: *** No rule to make target `check-asan'.  Stop.

So I tried the last part of the instructions found here:
https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerTestSuite

mkdir compiler-rt_obj && cd compiler-rt_obj
cmake -DCMAKE_C_COMPILER=/your/c/compiler \
        -DCMAKE_CXX_COMPILER=/your/cxx/compiler \
        -DLLVM_CONFIG_PATH=../llvm_tmp_obj/bin/llvm-config \
        ../compiler-rt_src

Using the compiler previously built above as /your/c/compiler.

This step succeeds too, or seems to.

But still, make check-asan:
make: *** No rule to make target `check-asan'.  Stop.

I must be missing something.

What is the recommended way of running asan tests?

Thanks

Christophe.

Gmane