summaryrefslogtreecommitdiffstats
path: root/contrib/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Merge -fstandalone-debug from Clang r198655:emaste2014-05-075-26/+42
| | | | | | | | | | | | | Implement a new -fstandalone-debug option. rdar://problem/15685848 It controls everything that -flimit-debug-info used to, plus the vtable type optimization. The old -fno-limit-debug-info option is now an alias to -fstandalone-debug and vice versa. Standalone is the default on Darwin until dtrace is updated to work with non-standalone debug info (rdar://problem/15758808). Note: I kept the LimitedDebugInfo name in CodeGenOptions::DebugInfoKind because NoStandaloneDebugInfo sounded even more confusing.
* Add patches corresponding to r264826 and r264827emaste2014-04-232-0/+250
|
* Merge Clang r202185:emaste2014-04-231-4/+20
| | | | | | | | | | | | | | | | Debug info: Generate debug info for variadic functions. Paired commit with LLVM. rdar://problem/13690847 This merege includes changes to use the Clang 3.4 API (revisions 199686 and 200082) in lib/CodeGen/CGDebugInfo.cpp: getParamType -> getArgType getNumParams -> getNumArgs getReturnType -> getResultType Sponsored by: DARPA, AFRL
* Merge LLVM r202188:emaste2014-04-234-29/+51
| | | | | | | | | | | | | | | | | | | | Debug info: Support variadic functions. Variadic functions have an unspecified parameter tag after the last argument. In IR this is represented as an unspecified parameter in the subroutine type. Paired commit with CFE r202185. rdar://problem/13690847 This re-applies r202184 + a bugfix in DwarfDebug's argument handling. This merge includes a change to use the LLVM 3.4 API in lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp: DwarfUnit -> CompileUnit Sponsored by: DARPA, AFRL
* Update the llvm/clang patch for r264345.dim2014-04-111-7/+5
|
* Amend r263891, by making clang default to DWARF2 debug info format fordim2014-04-111-3/+2
| | | | | | | | | | | all FreeBSD versions, not just 10.x and earlier. Apparently too many people seem to have trouble with post-1993 formats. Also remove the related notes about messing with kernel configuration files from UPDATING, which are now superfluous. Requested by: many MFC after: 3 days
* Add the llvm/clang patch for r263891.dim2014-03-291-0/+22
|
* Make clang default to DWARF2 debug info format for FreeBSD 10.x anddim2014-03-291-2/+4
| | | | | | | earlier. For head, this commit does not change anything, but it is purely meant to be MFC'd. MFC after: 3 days
* lldb: Invoke PT_KILL from ProcessPosix::DoDestroyemaste2014-03-241-4/+2
| | | | | | | | | | | | | | | | | | | We previously sent SIGKILL to the debuggee in DoDestroy, but did not actually detach or kill via ptrace. It seems that this somehow didn't matter on Linux, but did on FreeBSD. This would happen when quitting LLDB while stopped at a breakpoint, for example. The debuggee remained stopped in ptrace (with the signal either pending or lost). After a timeout of a second or two LLDB exits, which caused the debuggee to resume and dump core from an unhandled SIGTRAP. BringProcessIntoLimbo is a poorly named wrapper for ptrace(PT_KILL) which is the desired behaviour from DoDestroy. http://llvm.org/pr18894 Sponsored by: DARPA, AFRL
* Add the llvm/clang patch for r263619.andrew2014-03-231-0/+81
|
* Pull in r201662 from upstream clang trunk:andrew2014-03-222-3/+21
| | | | | | Add FreeBSD ARM EABI hard-float support Patch by Andrew Turner.
* Add separate patch files for all the customizations we have currentlydim2014-03-18100-0/+16346
| | | | | | | | | | | | | | applied to our copy of llvm/clang. These can be applied in alphabetical order to a pristine llvm/clang 3.4 release source tree, to result in the same version used in FreeBSD. This is intended to clearly document all the changes until now, which mostly consist of cherry pickings from the respective upstream trunks, plus a number of hand-written FreeBSD-specific ones. Hopefully those can eventually be cleaned up and sent upstream too. MFC after: 1 week X-MFC-With: r263313
* Pull in r203311 from upstream llvm trunk (by Arnold Schwaighofer):dim2014-03-181-0/+11
| | | | | | | | | | | | | | | | | | | | ISel: Make VSELECT selection terminate in cases where the condition type has to be split and the result type widened. When the condition of a vselect has to be split it makes no sense widening the vselect and thereby widening the condition. We end up in an endless loop of widening (vselect result type) and splitting (condition mask type) doing this. Instead, split both the condition and the vselect and widen the result. I ran this over the test suite with i686 and mattr=+sse and saw no regressions. Fixes PR18036. With this fix the original problem case from the graphics/rawtherapee port (posted in http://llvm.org/PR18036 ) now compiles within ~97MB RSS. Reported by: mandree MFC after: 1 week
* Pull in r196939 from upstream llvm trunk (by Reid Kleckner):dim2014-03-1810-36/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reland "Fix miscompile of MS inline assembly with stack realignment" This re-lands commit r196876, which was reverted in r196879. The tests have been fixed to pass on platforms with a stack alignment larger than 4. Update to clang side tests will land shortly. Pull in r196986 from upstream llvm trunk (by Reid Kleckner): Revert the backend fatal error from r196939 The combination of inline asm, stack realignment, and dynamic allocas turns out to be too common to reject out of hand. ASan inserts empy inline asm fragments and uses aligned allocas. Compiling any trivial function containing a dynamic alloca with ASan is enough to trigger the check. XFAIL the test cases that would be miscompiled and add one that uses the relevant functionality. Pull in r202930 from upstream llvm trunk (by Hans Wennborg): Check for dynamic allocas and inline asm that clobbers sp before building selection dag (PR19012) In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo to make sure that ESI isn't used as a base pointer register before we choose to emit rep movs (which clobbers esi). The problem is that MachineFrameInfo wouldn't know about dynamic allocas or inline asm that clobbers the stack pointer until SelectionDAGBuilder has encountered them. This patch fixes the problem by checking for such things when building the FunctionLoweringInfo. Differential Revision: http://llvm-reviews.chandlerc.com/D2954 Together, these commits fix the problem encountered in the devel/emacs port on the i386 architecture, where a combination of stack realignment, alloca() and memcpy() could incidentally clobber the %esi register, leading to segfaults in the temacs build-time utility. See also: http://llvm.org/PR18171 and http://llvm.org/PR19012 Reported by: ashish PR: ports/183064 MFC after: 1 week
* Garbage collect the old way of adding the libstdc++ include directoriesdim2014-03-111-8/+0
| | | | | | | | | | | | in clang's InitHeaderSearch.cpp. This has been superseded by David Chisnall's commit in r255321. Moreover, if libc++ is used, the libstdc++ include directories should not be in the search path at all. These directories are now only used if you pass -stdlib=libstdc++. MFC after: 3 days X-MFC-With: r261991
* Repair recognition of "CC" as an alias for the C++ compiler, since itdim2014-03-111-0/+2
| | | | | | | | | | was silently broken by upstream for a Windows-specific use-case. Apparently some versions of CMake still rely on this archaic feature... Reported by: rakuco MFC after: 3 days X-MFC-With: r261991
* Repair a few minor mismerges from r262261 in the clang-sparc64 projectdim2014-03-104-85/+1
| | | | | | | branch. This is also to minimize differences with upstream. MFC after: 3 weeks X-MFC-With: r262613
* Pull in r203007 from upstream clang trunk:dim2014-03-051-0/+6
| | | | | | | | | | | | | | | Don't produce an alias between destructors with different calling conventions. Fixes pr19007. (Please note that is an LLVM PR identifier, not a FreeBSD one.) This should fix Firefox and/or libxul crashes (due to problems with regparm/stdcall calling conventions) on i386. Reported by: multiple users on freebsd-current PR: bin/187103 MFC after: 1 week
* Merge from head up to r262611.dim2014-02-283-5/+9
|\
| * Pull in r196874 from upstream llvm trunk:dim2014-02-283-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a crash that occurs when PWD is invalid. MCJIT needs to be able to run in hostile environments, even when PWD is invalid. There's no need to crash MCJIT in this case. The obvious fix is to simply leave MCContext's CompilationDir empty when PWD can't be determined. This way, MCJIT clients, and other clients that link with LLVM don't need a valid working directory. If we do want to guarantee valid CompilationDir, that should be done only for clients of getCompilationDir(). This is as simple as checking for an empty string. The only current use of getCompilationDir is EmitGenDwarfInfo, which won't conceivably run with an invalid working dir. However, in the purely hypothetically and untestable case that this happens, the AT_comp_dir will be omitted from the compilation_unit DIE. This should help fix assertions occurring with ports-mgmt/tinderbox, when it is using jails, and sometimes invalidates clang's current working directory. Reported by: decke MFC after: 2 weeks X-MFC-With: r261991
* | Pull in r202422 from upstream llvm trunk (by Roman Divacky):dim2014-02-271-17/+8
| | | | | | | | | | | | Lower FNEG just like FABS to fneg[ds] and fmov[ds], thus avoiding expensive libcall. Also, Qp_neg is not implemented on at least FreeBSD. This is also what gcc is doing.
* | Merge from head up to r262536.dim2014-02-26267-9389/+19401
|\ \ | |/
| * Update LLDB snapshot to upstream r202189emaste2014-02-26267-9389/+19401
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Highlights include (upstream revs in parens): - Improvements to the remote GDB protocol client (r196610, r197579, r197857, r200072, and others) - Bug fixes for big-endian targets (r196808) - Initial support for libdispatch (GCD) queues in the debuggee (r197190) - Add "step-avoid-libraries" setting (r199943) - IO subsystem improvements (including initial work on a curses gui) (r200263) - Support hardware watchpoints on FreeBSD (r201706) - Improved unwinding through hand-written assembly functions (r201839) - Handle DW_TAG_unspecified_parameters for variadic functions (r202061) - Fix Ctrl+C interrupting a running inferior process (r202086, r202154) - Various bug fixes for memory leaks, LLDB segfaults, the C++ demangler, ELF core files, DWARF debug info, and others. Sponsored by: DARPA, AFRL
| | * Update LLDB snapshot to upstream r202189emaste2014-02-2539-248/+735
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Highlights include: - Support hardware watchpoints on FreeBSD (r201706) - Improved unwinding through hand-written assembly functions (r201839) - Handle DW_TAG_unspecified_parameters for variadic functions (r202061) - Fix Ctrl+C interrupting a running inferior process (r202086, r202154) - Various bug fixes, including to the remote GDB protocol client Sponsored by: DARPA, AFRL
| | * Clang/LLVM 3.4 compatibility for the LLDB snapshotemaste2014-02-182-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commits that tracked Clang/LLVM API changes after the 3.4 branch point: Git SVN 3ad0a1a 199408 05be72c 199689 9ad47a9 200085
| | * Update LLDB snapshot to upstream r201577emaste2014-02-18256-9186/+18712
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Highlights include: - Improvements to the remote GDB protocol client (r196610, r197579, r197857, r200072) - Bug fixes for big-endian targets (r196808) - Initial support for libdispatch (GCD) queues in the debuggee (r197190) - Add "step-avoid-libraries" setting (r199943) - IO subsystem improvements (including initial work on a curses gui) (r200263) - Various bug fixes for memory leaks, LLDB segfaults, the C++ demangler, ELF core files, DWARF debug info, and others. Sponsored by: DARPA, AFRL
* | | Pull in r202179 from upstream clang trunk:dim2014-02-261-0/+5
| | | | | | | | | | | | Pass the sparc architecture variant to the assembler.
* | | Pull in r202177 from upstream clang trunk (by Roman Divacky):dim2014-02-262-1/+18
| | | | | | | | | | | | | | | | | | Give sparcv9 the ability to set the target cpu. Change it from accepting -march which doesnt exist on sparc gcc to -mcpu. While here adjust a few tests to not write an unused temporary file.
* | | Pull in r202059 from upstream clang trunk (by Roman Divacky):dim2014-02-241-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | Implement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9. Enables the libgcc-specific undocumented __builtin_dwarf_sp_column() and __builtin_init_dwarf_reg_size_table() builtins to be compiled for sparc64.
* | | Pull in r201994 from upstream llvm trunk (by Benjamin Kramer):dim2014-02-232-0/+5
| | | | | | | | | | | | | | | | | | | | | SPARC: Implement TRAP lowering. Matches what GCC emits. This lets clang emit "ta 5" for trap instructions on sparc64, instead of emitting a call to abort(), making it possible to link the kernel.
* | | Merge from head up to r262311.dim2014-02-211-1/+6
|\ \ \ | |/ /
| * | Pull in r197521 from upstream clang trunk (by rdivacky):dim2014-02-211-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | Use the integrated assembler by default on FreeBSD/ppc and ppc64. Requested by: jhibbits MFC after: 1 month X-MFC-With: r261991
* | | Pull in r201718 from upstream llvm trunk:dim2014-02-201-0/+4
| | | | | | | | | | | | | | | | | | Expand 64bit {SHL,SHR,SRA}_PARTS on sparcv9. Submitted by: rdivacky
* | | Pull in r200453 from upstream llvm trunk:dim2014-02-202-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement SPARCv9 atomic_swap_64 with a pseudo. The SWAP instruction only exists in a 32-bit variant, but the 64-bit atomic swap can be implemented in terms of CASX, like the other atomic rmw primitives. Submitted by: rdivacky
* | | Import a whole bunch of clang trunk commits to enable self-hosting clangdim2014-02-204-6/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | 3.4 on Sparc64 (commit descriptions left out for brevity): r198311 r198312 r198911 r198912 r198918 r198923 r199012 r199034 r199037 r199188 r199399 r200452 Submitted by: rdivacky
* | | Import a whole bunch of llvm trunk commits to enable self-hosting clangdim2014-02-2045-770/+4678
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | 3.4 on Sparc64 (commit descriptions left out for brevity): r196755 r198028 r198029 r198030 r198145 r198149 r198157 r198565 r199186 r199187 r198280 r198281 r198286 r198480 r198484 r198533 r198567 r198580 r198591 r198592 r198658 r198681 r198738 r198739 r198740 r198893 r198909 r198910 r199014 r199024 r199028 r199031 r199033 r199061 r199775 r199781 r199786 r199940 r199974 r199975 r199977 r200103 r200104 r200112 r200130 r200131 r200141 r200282 r200368 r200373 r200376 r200509 r200617 r200960 r200961 r200962 r200963 r200965 Submitted by: rdivacky
* | Fix mismerge in r262121emaste2014-02-181-0/+1
|/ | | | | A break statement was lost in the merge. The error had no functional impact, but restore it to reduce the diff against upstream.
* Update lldb for clang/llvm 3.4 importemaste2014-02-179-140/+128
| | | | | | | | | | | | | | | | | | | | | | This commit largely restores the lldb source to the upstream r196259 snapshot with the addition of threaded inferior support and a few bug fixes. Specific upstream lldb revisions restored include: SVN git 181387 779e6ac 181703 7bef4e2 182099 b31044e 182650 f2dcf35 182683 0d91b80 183862 15c1774 183929 99447a6 184177 0b2934b 184948 4dc3761 184954 007e7bc 186990 eebd175 Sponsored by: DARPA, AFRL
* Upgrade our copy of llvm/clang to 3.4 release. This version supportsdim2014-02-162256-137394/+258970
| | | | | | | | | | | | | | | | | all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y. The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month
* Pull in r200899 from upstream clang trunk:dim2014-02-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | Allow transformation of VariableArray to ConstantArray. In the following code: struct A { static const int sz; }; template<class T> void f() { T arr[A::sz]; } the array 'arr' is represented as a variable size array in the template. If 'A::sz' gets value below in the translation unit, the array in instantiation can turn into constant size array. This change fixes PR18633. Differential Revision: http://llvm-reviews.chandlerc.com/D2688 This fixes "Assertion failed: (T::isKind(*this)), function castAs" errors, which can occur when building the security/quantis port. Reported by: ale MFC after: 3 days
* Pull in r195679 from upstream llvm trunk:dim2014-01-251-1/+5
| | | | | | | | | | | | | | | | | | Don't use nopl in cpus that don't support it. Patch by Mikulas Patocka. I added the test. I checked that for cpu names that gas knows about, it also doesn't generate nopl. The modified cpus: i686 - there are i686-class CPUs that don't have nopl: Via c3, Transmeta Crusoe, Microsoft VirtualBox - see https://bbs.archlinux.org/viewtopic.php?pid=775414 k6, k6-2, k6-3, winchip-c6, winchip2 - these are 586-class CPUs via c3 c3-2 - see https://bugs.archlinux.org/task/19733 as a proof that Via c3 and c3-Nehemiah don't have nopl PR: bin/185777 MFC after: 3 days
* Pull in r183971 from upstream llvm trunk:dim2013-12-251-7/+8
| | | | | | | | | | | | | X86: cvtpi2ps is just an SSE instruction with MMX operands. It has no AVX equivalent. Give it the right register format so we can also emit it when AVX is enabled. This should fix a "Cannot select: intrinsic %llvm.x86.sse.cvtpi2ps" fatal error in clang while building the gnuradio port for amd64. Reported by: db MFC after: 3 days
* Pull in r197399 from upstream clang trunk:dim2013-12-171-0/+1
| | | | | | Add bit_FXSAVE as an alias for bit_FXSR, for gcc compat. MFC after: 3 days
* Pull in r196658 from upstream clang trunk:dim2013-12-081-3/+2
| | | | | | | | | | | | | | | | | CodeGen: Don't emit linkage on thunks that aren't emitted because they're vararg. This can happen when we're trying to emit a thunk with available_externally linkage with optimization enabled but bail because it doesn't make sense for vararg functions. [LLVM] PR18098. This should fix clang "Broken module found, compilation aborted" errors when building the qt4-based dvbcut port. Reported by: se MFC after: 3 days
* Pull in r196590 from upstream clang trunk (by rdivacky):dim2013-12-072-8/+8
| | | | | | | | | | | | | Move the body of GCCInstallationDetector ctor into an init() function and call it from its only user. The linux toolchain. This saves quite a lot of directory searching on other platforms. See http://docs.freebsd.org/cgi/mid.cgi?51E6FAF5.3080802 for the original discussion. With this fix, the search for gcc installations is completely eliminated on FreeBSD. Reported by: Kurt Lidl <lidl@pix.net> MFC after: 3 days
* Update LLDB to upstream r196322 snapshotemaste2013-12-032-10/+31
| | | | | | | | Upstream revisions of note: r196298 - Fix use of std::lower_bound r196322 - Fix log message for new invalidation checks Sponsored by: DARPA, AFRL
* lldb: Threaded inferior support for FreeBSDemaste2013-12-0310-204/+341
| | | | | | | | | | This is in the process of being submitted to the upstream LLDB repository. The thread list functionality is modelled in part on GDBRemoteCommunicationClient. LLDB bug pr16696 and code review D2267 Sponsored by: DARPA, AFRL
* Update LLDB to upstream r196259 snapshotemaste2013-12-03148-2692/+6573
| | | | Sponsored by: DARPA, AFRL
* Workaround lldb issue with main module base addressemaste2013-12-031-0/+11
| | | | | | | | | | | On FreeBSD lldb sometimes reloads the the main module's (executable's) symbols at the wrong address. Work around this for now by explicitly reloading at base_address=0 when it happens. A proper fix is needed but early testers have reported this issue so this workaround should allow them to make further progress. http://llvm.org/bugs/show_bug.cgi?id=17880
* Pull in r195558 from upstream clang trunk:dim2013-11-261-1/+1
| | | | | | | | | | | | | | Fix a SSE2 intrinsics typo Full discourse at: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20131104/092514.html http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-November/068124.html Patch by Dimitry Andric and Alexey Dokuchaev! Reported by: danfe MFC after: 3 days
OpenPOWER on IntegriCloud