summaryrefslogtreecommitdiffstats
path: root/lib/clang
Commit message (Collapse)AuthorAgeFilesLines
* MFC r304530:dim2016-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull in r265122 from upstream llvm trunk (by James Molloy): Fix for pr24346: arm asm label calculation error in sub Some ARM instructions encode 32-bit immediates as a 8-bit integer (0-255) and a 4-bit rotation (0-30, even) in its least significant 12 bits. The original fixup, FK_Data_4, patches the instruction by the value bit-to-bit, regardless of the encoding. For example, assuming the label L1 and L2 are 0x0 and 0x104 respectively, the following instruction: add r0, r0, #(L2 - L1) ; expects 0x104, i.e., 260 would be assembled to the following, which adds 1 to r0, instead of 260: e2800104 add r0, r0, #4, 2 ; equivalently 1 The new fixup kind fixup_arm_mod_imm takes care of the encoding: e2800f41 add r0, r0, #260 Patch by Ting-Yuan Huang! This fixes label calculation for ARM assembly, and is needed to enable ARM assembly sources for OpenSSL. Approved by: re (kib) Requested by: jkim
* MFC r304319:dim2016-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Pull in r262772 from upstream clang trunk (by Simon Pilgrim): [X86] AMD Bobcat CPU (btver1) doesn't support XSAVE btver1 is a SSSE3/SSE4a only CPU - it doesn't have AVX and doesn't support XSAVE. Differential Revision: http://reviews.llvm.org/D17682 Pull in r262782 from upstream llvm trunk (by Simon Pilgrim): [X86] AMD Bobcat CPU (btver1) doesn't support XSAVE btver1 is a SSSE3/SSE4a only CPU - it doesn't have AVX and doesn't support XSAVE. Differential Revision: http://reviews.llvm.org/D17683 This ensures clang does not emit AVX instructions for CPUTYPE=btver1. Approved by: re (kib) Reported by: Michel Depeige <demik+freebsd@lostwave.net> PR: 211864
* Similar to r256297, disable assertions in llvm and clang for thedim2016-08-172-2/+2
| | | | | | | releng/11.0 branch. This reduces the size of the clang executable, and improves its performance. Also bump FREEBSD_CC_VERSION. Approved by: re (gjb)
* Add clang-format under WITH_CLANG_EXTRAS.bdrewery2016-06-175-1/+72
| | | | | | | Reviewed by: dim Approved by: re (gjb) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6856
* For clang, move the definition of FREEBSD_CC_VERSION into its own headerdim2016-06-033-2/+6
| | | | | | | | | | file, lib/clang/freebsd_cc_version.h, instead of reusing Version.inc. The header is only included from one .cpp file in the clang tree. This minimizes the number of .cpp files that need to be rebuilt if the version is bumped. Discussed with: bdrewery
* Pull in r271548 from upstream llvm trunk (by me):dim2016-06-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Only attempt to detect AVG if SSE2 is available Summary: In PR29973 Sanjay Patel reported an assertion failure when a certain loop was optimized, for a target without SSE2 support. It turned out this was because of the AVG pattern detection introduced in rL253952. Prevent the assertion failure by bailing out early in `detectAVGPattern()`, if the target does not support SSE2. Also add a minimized test case. Reviewers: congh, eli.friedman, spatel Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D20905 This should fix assertion failures ("Requires at least SSE2!") when building the games/0ad port with CPUTYPE=pentium3. Reported by: madpilot
* Bump __FreeBSD_cc_version after r300974.dim2016-05-301-1/+1
|
* Add FREEBSD_CC_VERSION which will be used to define __FreeBSD_cc_version.bdrewery2016-05-211-0/+2
| | | | | | | | | | | | The WITH_SYSTEM_COMPILER build option will rely on this value to determine what __FreeBSD_cc_version the source tree will produce. This value will be compared against the /usr/bin/cc value to determine if a new compiler is needed. Start with 1100002 which is 1 more than than the value we've had since 3.8.0 to ensure that all changes since then are present. Reviewed by: dim Sponsored by: EMC / Isilon Storage Division
* Make armv6 hard float abi by default. Kill armv6hf.imp2016-05-181-4/+7
| | | | | | | Allow CPUTYPE=soft to build the current soft-float abi libraries. Add UPDATING entry to announce this. Approved by: re@ (gjb)
* Limit Options.inc generation to desired targetsemaste2016-05-051-2/+3
| | | | | | | | | | | | | | As mentioned in the Makefile there's an "atrocious" hack to generate a different version of Options.inc.h, depending on the library being built. Remove the catch-all else case and limit it to specific libraries, so that we don't accidentally use the Options.inc.h from clangdriver if a future libary also uses Options.inc.h. Reviewed by: dim Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D6209
* Implement (ACFLAGS|CFLAGS|CXXFLAGS).SRC globally.bdrewery2016-03-261-1/+0
| | | | Sponsored by: EMC / Isilon Storage Division
* Use the new bmake .dinclude feature to make these safe.bdrewery2016-03-111-5/+9
| | | | | | | | At least FAST_DEPEND won't even run 'make depend', so the code was potentially broken with FAST_DEPEND anyhow. The .dinclude directive will ignore missing files rather than make them be fatal. Sponsored by: EMC / Isilon Storage Division
* DIRDEPS_BUILD: Update clang dependencies after r296417.bdrewery2016-03-0878-125/+166
| | | | Sponsored by: EMC / Isilon Storage Division
* Update llvm and clang to 3.8.0 release.dim2016-03-031-1/+1
|
* Update llvm and clang to release_38 branch r261684.dim2016-02-241-1/+1
|
* Merge ^/head r295902 through r296006.dim2016-02-2495-7336/+0
|\
| * DIRDEPS_BUILD: Regenerate without local dependencies.bdrewery2016-02-24101-7406/+0
| | | | | | | | | | | | | | | | These are no longer needed after the recent 'beforebuild: depend' changes and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports skipping 'make depend'. Sponsored by: EMC / Isilon Storage Division
| * FAST_DEPEND: Always run depend via beforebuild which removes many hacks.bdrewery2016-02-241-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will generate dependencies rather than depending on the previous behavior of depending on the guessed OBJS: *.h dependecies or a user running 'make depend'. Experimentation showed that depending only on headers was not enough and prone to .ORDER errors. Downstream users may also have added dependencies into beforedepend or afterdepend targets. The safest way to ensure dependencies are generated before build is to run 'make depend' beforehand rather than just depending on DPSRCS+SRCS. Note that the OBJS_DEPEND_GUESS mechanism (a.k.a .if !exists(.depend) then foo.o: *.h) is still useful as it improves incremental builds with missing .depend.* files and allows 'make foo.o' to usually work, while this 'beforebuild: depend' ensures that the build will always find all dependencies. The 'make foo.o' case has no means of a 'beforebuild' hook. This also removes several hacks in the DIRDEPS_BUILD: - NO_INSTALL_INCLUDES is no longer needed as it mostly was to work around .ORDER problems with building the needed headers early. - DIRDEPS_BUILD: It is no longer necesarry to track "local dependencies" in Makefile.depend. These were only in Makefile.depend for 'clean builds' since nothing would generate the files due to skipping 'make depend' and early dependency bugs that have been fixed, such as adding headers into SRCS for the OBJS_DEPEND_GUESS mechanism. Normally if a .depend file does not exist then a dependency is added by bsd.lib.mk/bsd.prog.mk from OBJS: *.h. However, meta.autodep.mk creates a .depend file from created meta files and inserts that into Makefile.depend. It also only tracks *.[ch] files though which can miss some dependencies that are hooked into 'make depend'. This .depend that is created then breaks incremental builds due to the !exists(.depend) checks for OBJS_DEPEND_GUESS. The goal was to skip 'make depend' yet it only really works the first time. After that files are not generated as expected, which r288966 tried to address but was using buildfiles: rather than beforebuild: and was reverted in r291725. As noted previously, depending only on headers in beforebuild: would create .ORDER errors in some cases. meta.autodep.mk is still used to generate Makefile.depend though via: gendirdeps: Makefile.depend .END: gendirdeps This commit allows removing all of the "local dependencies" in Makefile.depend which cuts down on churn and removes some of the arch-dependent Makefile.depend files. The "local dependencies" were also problematic for bootstrapping. Sponsored by: EMC / Isilon Storage Division
* | Update llvm and clang to release_38 branch r261369.dim2016-02-211-1/+1
| |
* | Merge ^/head r295601 through r295844.dim2016-02-217-0/+114
|\ \ | |/
| * DIRDEPS_BUILD: Hookup CLANG_EXTRAS.bdrewery2016-02-167-0/+114
| | | | | | | | Sponsored by: EMC / Isilon Storage Division
* | Update llvm, clang and lldb to release_38 branch r260756.dim2016-02-131-1/+1
| |
* | Update llvm, clang and lldb to release_38 branch r258968.dim2016-01-271-1/+1
| |
* | Undo r294499 for now (which disabled -mlong-calls), so arm builds candim2016-01-231-2/+1
| | | | | | | | succeed again.
* | Update llvm and clang to release_38 branch r258549.dim2016-01-221-1/+1
| |
* | Merge ^/head r294169 through r294598.dim2016-01-221-1/+2
|\ \ | |/
| * Disable -mlong-calls for the clang libraries for now, it increases theandrew2016-01-211-1/+2
| | | | | | | | size of the clang binary for people with a crt1.o from before r293832.
* | Update llvm/clang build glue.dim2016-01-164-6/+7
| |
* | Merge ^/head r293850 through r294089.dim2016-01-151-0/+4
|\ \ | |/
| * Set -mlong-calls where needed to get a static clang and lldb 3.8.0andrew2016-01-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | linking. These are too large for a branch instruction to branch from an earlier point in the code to somewhere later. This will also allow these to be build with Thumb-2 when we get this infrastructure. Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D4855
* | Update llvm, clang and lldb to trunk r257626, and update build glue.dim2016-01-143-3/+8
| |
* | As submitted upstream in a review, avoid using undefined behavior indim2016-01-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | llvm's LinkAllPasses.h. This caused some of the calls not to be emitted, if the optimization level was -O2 or higher. Conversely, if you used -O1 or lower, calls to e.g. RunningOnValgrind() would be emitted, leading to link failures, because we did not include Valgrind.cpp into libllvmsupport. Therefore, add it unconditionally. Noticed by: ian
* | Update llvm library dependencies.dim2016-01-061-0/+1
| |
* | Update llvm/clang svn revision.dim2016-01-061-1/+1
| |
* | Add new pkuintrin.h intrinsics header.dim2016-01-061-0/+1
| |
* | Update build infrastructure for LLDB 3.8emaste2016-01-0419-50/+159
| |
* | Build Valgrind.cpp for LLDB, not only CLANG_EXTRASemaste2016-01-031-2/+2
| | | | | | | | It's required as of LLDB 3.8.
* | Next part of updating llvm/clang build glue: getting thedim2015-12-3111-22/+37
| | | | | | | | WITH_CLANG_EXTRAS tools built.
* | First part of updating llvm/clang build glue: getting llvm-tblgen,dim2015-12-3168-123/+194
| | | | | | | | clang-tblgen and clang itself built.
* | Update various build glue files for the new llvm/clang version number.dim2015-12-301-2/+7
| |
* | Update clang's Version.inc file, and regenerate various generateddim2015-12-305-133/+170
|/ | | | | configuration headers (these used to be generated by autoconf, but upstream has deprecated autoconf in favor of CMake).
* Upgrade our copies of clang and llvm to 3.7.1 release. This is adim2015-12-255-12/+12
| | | | | | | bugfix-only release, with no new features. Please note that from 3.5.0 onwards, clang and llvm require C++11 support to build; see UPDATING for more information.
* META MODE: Update dependencies with 'the-lot' and add missing directories.bdrewery2015-12-0166-1399/+442
| | | | | | | | | | | | | | This is not properly respecting WITHOUT or ARCH dependencies in target/. Doing so requires a massive effort to rework targets/ to do so. A better approach will be to either include the SUBDIR Makefiles directly and map to DIRDEPS or just dynamically lookup the SUBDIR. These lose the benefit of having a userland/lib, userland/libexec, etc, though and results in a massive package. The current implementation of targets/ is very unmaintainable. Currently rescue/rescue and sys/modules are still not connected. Sponsored by: EMC / Isilon Storage Division
* META MODE: Rework [bootstrapped] tools PATH support.bdrewery2015-12-011-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Support more of the toolchain from TOOLSDIR. - This also improves 'make bootstrap-tools' to pass, for example, AS=/usr/bin/as to Makefile.inc1, which will tell cross-tools to use external toolchain support and avoid building things we won't be using in the build. - Always set the PATH to contain the staged TOOLSDIR directories when not building the bootstrap targets. The previous version was only setting this at MAKE.LEVEL==0 and if the TOOLSDIR existed. Both of these prevented using staged tools that were built during the build though as DIRDEPS with .host dependencies, such as the fix for needing usr.bin/localedef.host in r291311. This is not a common tool so we must build and use it during the build, and need to be prepared to change PATH as soon as it appears. This should also fix the issue of host dependencies disappearing from Makefile.depend and then reappearing due to the start of the fresh build not having the directory yet, resulting in the tools that were built not actually being used. - Only use LEGACY_TOOLS while building in Makefile.inc1. After r291317 and r291546 there is no need to add LEGACY_TOOLS into the PATH for the pseudo/targets/toolchain build. - Because the pseudo/targets/toolchain will now build its own [clang-]tblgen, the special logic in clang.build.mk is no longer needed. - LEGACY_TOOLS is no longer used outside of targets/pseudo/bootstrap-tools so is no longer passed into the environment in its build. Sponsored by: EMC / Isilon Storage Division
* META MODE: Fix rebuilding of lib/clang/include after clang-tblgen.host isbdrewery2015-12-012-3/+1
| | | | | | | | | | | | | | | staged. None of usr.bin/clang/clang-tblgen or its dependencies need lib/clang/include, so there is no cyclic dependency here to worry about. The issue came about because of workarounds to dependencies on clang being optional. Without this, the clang-tblgen called during the build would change after it was staged for the host. This would cause lib/clang/include to rebuild due to changed build commands. Sponsored by: EMC / Isilon Storage Division
* Only DIRDEPS_BUILD should trigger this logic.bdrewery2015-11-301-2/+2
| | | | | | Missed in r290816. Sponsored by: EMC / Isilon Storage Division
* libllvmmirparser and libllvmlibdriver are only used in usr.bin/clang/llc andbdrewery2015-11-301-2/+2
| | | | | | | usr.bin/clang/llvm-ar, respectively, when MK_CLANG_EXTRAS is yes. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Remove redundant DPSRCS which were already in SRCS.bdrewery2015-11-251-1/+0
| | | | | | | DPSRCS already contains all of SRCS. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Switch the default OpenMP runtime for clang to libomp (from the LLVMdim2015-10-182-2/+2
| | | | | project), as libgomp is not supported anyway. You can use the devel/llvm-devel port to install a recent copy of the OpenMP runtime.
* Conditionalize the META_MODE tool handling on MK_META_MODE.bdrewery2015-10-171-0/+2
| | | | | | | It was not being used outside of META_MODE but this should make it more clear that it is only for META_MODE. Sponsored by: EMC / Isilon Storage Division
OpenPOWER on IntegriCloud