On 4/15/16, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote:> On Fri, Apr 15, 2016 at 02:31:59PM +0200, ardi via llvm-dev wrote: >> On Fri, Apr 15, 2016 at 1:02 PM, Joerg Sonnenberger via llvm-dev >> <llvm-dev at lists.llvm.org> wrote: >> > On Fri, Apr 15, 2016 at 10:45:03AM +0200, ardi via llvm-dev wrote: >> >> What I found is that the build system is really complex, performs many >> >> checks, and quite often takes wrong decisions (example: a fatal error >> >> if the OS X version is older than 10.7, instead of just disabling >> >> sanitizers and continuing with the build --moreover, if you manually >> >> disable the sanitizers build, its tests are not disabled at make >> >> check-all, so you end up with many tests failing because of a >> >> component you didn't build). >> > >> > Huh? If you check out only llvm and clang, nothing is checked for the >> > sanitizers, they don't get built and they don't get tested. >> >> But if you don't check out compiler-rt, you don't get builtins. >> Missing the feature of getting highly optimized code output is a big >> miss, IMHO. And I don't think builtins require anything apart from a >> standard compiler. > > On most platforms you don't need compiler-rt except for the sanitizers.Wait, do you mean that builtins for processors like x86_64 or PowerPC aren't being used by clang? I understood builtins were a key lib for getting maximum performance on the processors it supports, but maybe I misunderstood it. ardi
On Fri, Apr 15, 2016 at 05:22:12PM +0200, ardi via llvm-dev wrote:> On 4/15/16, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > On Fri, Apr 15, 2016 at 02:31:59PM +0200, ardi via llvm-dev wrote: > >> On Fri, Apr 15, 2016 at 1:02 PM, Joerg Sonnenberger via llvm-dev > >> <llvm-dev at lists.llvm.org> wrote: > >> > On Fri, Apr 15, 2016 at 10:45:03AM +0200, ardi via llvm-dev wrote: > >> >> What I found is that the build system is really complex, performs many > >> >> checks, and quite often takes wrong decisions (example: a fatal error > >> >> if the OS X version is older than 10.7, instead of just disabling > >> >> sanitizers and continuing with the build --moreover, if you manually > >> >> disable the sanitizers build, its tests are not disabled at make > >> >> check-all, so you end up with many tests failing because of a > >> >> component you didn't build). > >> > > >> > Huh? If you check out only llvm and clang, nothing is checked for the > >> > sanitizers, they don't get built and they don't get tested. > >> > >> But if you don't check out compiler-rt, you don't get builtins. > >> Missing the feature of getting highly optimized code output is a big > >> miss, IMHO. And I don't think builtins require anything apart from a > >> standard compiler. > > > > On most platforms you don't need compiler-rt except for the sanitizers. > > Wait, do you mean that builtins for processors like x86_64 or PowerPC > aren't being used by clang? I understood builtins were a key lib for > getting maximum performance on the processors it supports, but maybe I > misunderstood it.Few builtins are lowered to libcalls on x86_64 and powerpc and those are normally provided e.g. by libgcc already. Joerg
Ardi, Your comments about the compiler-rt build system being a problem are very correct. We're working on it. We're moving in a direction with the compiler-rt build system to separate the build logic for the sanitizers from the build logic for the builtins, and to clean up the interface between the top-level LLVM & Clang build systems and the compiler-rt one. -Chris>> On Apr 16, 2016, at 1:26 AM, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >>> On Fri, Apr 15, 2016 at 05:22:12PM +0200, ardi via llvm-dev wrote: >>>> On 4/15/16, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote: >>>> On Fri, Apr 15, 2016 at 02:31:59PM +0200, ardi via llvm-dev wrote: >>>> On Fri, Apr 15, 2016 at 1:02 PM, Joerg Sonnenberger via llvm-dev >>>> <llvm-dev at lists.llvm.org> wrote: >>>>>> On Fri, Apr 15, 2016 at 10:45:03AM +0200, ardi via llvm-dev wrote: >>>>>> What I found is that the build system is really complex, performs many >>>>>> checks, and quite often takes wrong decisions (example: a fatal error >>>>>> if the OS X version is older than 10.7, instead of just disabling >>>>>> sanitizers and continuing with the build --moreover, if you manually >>>>>> disable the sanitizers build, its tests are not disabled at make >>>>>> check-all, so you end up with many tests failing because of a >>>>>> component you didn't build). >>>>> >>>>> Huh? If you check out only llvm and clang, nothing is checked for the >>>>> sanitizers, they don't get built and they don't get tested. >>>> >>>> But if you don't check out compiler-rt, you don't get builtins. >>>> Missing the feature of getting highly optimized code output is a big >>>> miss, IMHO. And I don't think builtins require anything apart from a >>>> standard compiler. >>> >>> On most platforms you don't need compiler-rt except for the sanitizers. >> >> Wait, do you mean that builtins for processors like x86_64 or PowerPC >> aren't being used by clang? I understood builtins were a key lib for >> getting maximum performance on the processors it supports, but maybe I >> misunderstood it. > > Few builtins are lowered to libcalls on x86_64 and powerpc and those are > normally provided e.g. by libgcc already. > > Joerg > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev