229 Commits

Author SHA1 Message Date
ajacoutot
dd092f3f2c Adjust default CPU for OpenBSD/arm and set proper ABI.
from Brad (maintainer)
2016-09-24 12:35:38 +00:00
ajacoutot
b939f1507b Merge in the fix clang types force soft-float on arm patches.
from Brad (maintainer)
2016-09-18 07:46:32 +00:00
ajacoutot
c1e2926500 - Remove an obsolete patch that was for the GNU make build infrastructure
- Merge in the stack protector and EH frame header patches

from Brad (maintainer)
2016-09-13 07:47:41 +00:00
pascal
aa823a61b1 adjust for GCC update. 2016-09-01 17:32:16 +00:00
ajacoutot
6d9a673128 Update to llvm-3.8.1.
from Brad (maintainer)
2016-07-31 17:49:38 +00:00
stefan
82a7713f75 Make clang build working binaries by linking against rcrt0 when
building static PIE binaries. This is also what Bitrig does

ok tobiasu@ sthen@
2016-07-06 16:33:35 +00:00
ajacoutot
c159857a43 Select proper SPARCv9 variant for the assembler.
from Brad (maintainer)
2016-05-24 07:53:23 +00:00
ajacoutot
526c785d36 Enable the integrated assembler on Mips64 and Sparc.
from Brad (maintainer)
2016-05-15 07:07:52 +00:00
ajacoutot
99e4144510 Update to llvm-3.8.0.
from Brad (maintainer)
2016-05-14 20:36:36 +00:00
sthen
35d936a290 don't allow llvm to pick up go 2016-04-29 08:40:07 +00:00
pascal
f670fda3b4 Do not #include <execinfo.h> if it is not needed.
found by naddy@
2016-03-15 21:33:19 +00:00
pascal
79e658178f Correct LLVM linker patch: -L arguments passed on the command line need to be
processed *before* adding default -L directories.  Fixes
mail/mozilla-thunderbird.

ok landry@
2016-03-07 17:03:04 +00:00
pascal
ba0dd5ada1 Update to LLVM 3.7.1. This version is modified to use C++ includes from
ports GCC and link to libestdc++.

Currently, this still breaks mail/mozilla-thunderbird, which will be taken care
of shortly.

feedback/testing from jsg landry mmcc semarie aja naddy (hope I didn't forget
anyone)

ok landry robert
2016-03-05 15:31:40 +00:00
ajacoutot
4413e0aa9e Backport commit from upstream LLVM:
r219009
[ISel] Keep matching state consistent when folding during X86 address match

from Brad (maintainer)
2015-08-24 07:45:56 +00:00
ajacoutot
b7bb2156ba Backport commit from upstream LLVM:
r239046
[SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on Linux.

from brad (maintainer)
2015-06-15 06:20:48 +00:00
ajacoutot
3e488945c1 Add SVN commit id.
from brad (maintainer)
2015-06-04 09:04:44 +00:00
ajacoutot
fd433c3589 Backport commit from upstream LLVM:
r229911
MC: Allow multiple comma-separated expressions on the .uleb128 directive.

from brad (maintainer)
2015-06-04 05:58:43 +00:00
ajacoutot
2e9e3c497d Have sparc use -fPIE by default.
from brad (maintainer)
2015-06-03 06:23:21 +00:00
ajacoutot
2448967a5b Backport commit from upstream LLVM: r236179
Propagate a terrible hack to the sparc target feature handling code
by erasing the soft-float target feature if the rest of the front
end added it because of defaults or the soft float option.

from brad (maintainer)
2015-05-21 05:37:50 +00:00
ajacoutot
693adec6b2 Backport commits from upstream LLVM.
r237580
Add support for the Sparc implementation-defined "ASR" registers.

r237581
Sparc: Add the "alternate address space" load/store instructions.

- Adds support for the asm syntax, which has an immediate integer
  "ASI" (address space identifier) appearing after an address, before
  a comma.

- Adds the various-width load, store, and swap in alternate address
  space instructions. (ldsba, ldsha, lduba, lduha, lda, stba, stha,
  sta, swapa)

r237582
Sparc: Support PSR, TBR, WIM read/write instructions

from brad (maintainer)
2015-05-19 05:33:38 +00:00
ajacoutot
9b0b92263c Backport commits from upstream LLVM.
r236042
Sparc: Add alternate aliases for conditional branch instructions.

r236107
Sparc: Prefer reg+reg address encoding when only one register used.

r236137
Make Sparc assembler accept parenthesized constant expressions.

from brad (maintainer)
2015-05-11 23:21:51 +00:00
sthen
38e151ecc1 Backport commit from upstream Clang/LLVM, from Brad (maintainer).
r211785
Implement the -fuse-ld= option.

This commit implements the -fuse-ld= option, so that the user
can specify -fuse-ld=bfd to use ld.bfd.
2015-04-09 22:25:02 +00:00
brad
ec010cbf26 r228507
Avoid integer overflows around realloc calls resulting in potential
heap. Problem identified by Guido Vranken.

r225819
Use the integrated assembler as default on PowerPC
r225957
Use the integrated assembler by default on SPARC.
r225958
Use the integrated assembler by default on 32-bit PowerPC and SPARC.
2015-02-11 00:29:05 +00:00
brad
8691b692bf r202719
Don't emit a blank line when running llvm-config --system-libs.
2015-01-22 12:29:36 +00:00
brad
ef8d048a5d Commited upstream. 2015-01-06 00:58:02 +00:00
brad
8d28f1b005 Contrary to pascal@'s disbelief there does seem to be an issue with PIE. Have
the build disable PIE on PowerPC as a workaround for the time being until it
can be determined what the issue is and fixed properly.

Workarounded provided by pascal@
2015-01-03 00:54:12 +00:00
brad
5189bb6550 r223708
[PowerPC] Don't use a non-allocatable register to implement the 'cc' alias
2014-12-30 22:41:09 +00:00
brad
1693272b86 r223328
[PowerPC] 'cc' should be an alias only to 'cr0'
2014-12-30 22:25:47 +00:00
brad
c5aa849d32 r213890
Use the same .eh_frame encoding for 32bit PPC as on i386.
2014-12-30 05:23:32 +00:00
brad
c2a982e3cd r203699
Allow exclamation and tilde to be parsed as a part of the ppc asm operand.

r209821
[PPC] Use alias symbols in address computation.
2014-12-28 00:30:17 +00:00
brad
3c28eb1c6c r221170
Implement vaarg lowering for ppc32. Lowering of scalars and
aggregates is supported. Complex numbers are not.
2014-12-16 21:10:31 +00:00
brad
0b233ffdc3 r223171
PR21302. Vectorize only bottom-tested loops.
2014-12-12 21:51:39 +00:00
brad
12e94b4391 r221709
Totally forget deallocated SDNodes in SDDbgInfo.

What would happen before that commit is that the SDDbgValues associated with
a deallocated SDNode would be marked Invalidated, but SDDbgInfo would keep
a map entry keyed by the SDNode pointer pointing to this list of invalidated
SDDbgNodes. As the memory gets reused, the list might get wrongly associated
with another new SDNode. As the SDDbgValues are cloned when they are transfered,
this can lead to an exponential number of SDDbgValues being produced during
DAGCombine like in http://llvm.org/bugs/show_bug.cgi?id=20893

Note that the previous behavior wasn't really buggy as the invalidation made
sure that the SDDbgValues won't be used. This commit can be considered a
memory optimization and as such is really hard to validate in a unit-test.
2014-11-15 03:26:40 +00:00
ajacoutot
703fb644d7 No need for default CMAKE_BUILD_TYPE. 2014-11-07 10:40:05 +00:00
brad
52448afff1 Remove the .quad assembler workaround for i386 now that the external
assembler has been fixed. The integrated assembler already handled
this properly but the workaround didn't take that into consideration.

ok daniel@
2014-10-28 17:52:05 +00:00
brad
2ddb9623ce take maintainer. 2014-10-11 20:23:46 +00:00
brad
32b210e86c r208965
Sparc: disable printing on longer "brX,pt" aliases

r208966
Sparc: disable printing of jmp/call aliases (C++ does it)

r217801
Fix a lot of confusion around inserting nops on empty functions.
2014-09-18 20:19:27 +00:00
brad
dafbe5d7d9 r217410
Set trunc store action to Expand for all X86 targets.

When compiling without SSE2, isTruncStoreLegal(F64, F32) would return Legal, whereas
with SSE2 it would return Expand. And since the Target doesn't seem to actually
handle a truncstore for double -> float, it would just output a store of a full
double in the space for a float hence overwriting other bits on the stack.
2014-09-15 19:24:16 +00:00
brad
e50d65c350 r205331
Debug info: fix a crash when emitting IndirectFieldDecls, which were previously
not handled at all.
2014-09-12 12:39:47 +00:00
brad
6b3e8776f2 r215238 / r217611
Provide implementations of getNoopForMachoTarget for PowerPC / SPARC.
2014-09-11 17:59:51 +00:00
brad
d0a5824619 r213427
[PowerPC] 32-bit ELF PIC support

r213899
Don't use 128bit functions on PPC32.

This adds initial support for PPC32 ELF PIC (Position Independent Code; the
-fPIC variety), thus rectifying a long-standing deficiency in the PowerPC
backend.

r213960
[PowerPC] Support TLS on PPC32/ELF
2014-09-11 17:54:13 +00:00
brad
fe7db59349 - Remove a local PowerPC patch we don't need.
- A fix for the SPARC float handling. Adding the missing & to the field allows
  the backend feature flag to be passed back which it was not without it.
- Add some patches to enable the integrated assembler on PowerPC / SPARC.
  I left these out before as I thought because Clang was not obeying this
  setting and had its own similar bits they were not necessary but turns
  out the backend has some code that does obey this setting.

ok sthen@
2014-08-29 14:28:32 +00:00
brad
06acbb6e4b r211435
Legalizer: Add support for splitting insert_subvectors.

We handle this by spilling the whole thing to the stack and doing the
insertion as a store.

PR19492. This happens in real code because the vectorizer creates v2i128 when AVX is
enabled.

ok matthew@
2014-08-14 01:08:09 +00:00
pascal
b7bbd19079 Fix detection of arc4random.
ok brad@ sthen@
2014-07-26 09:27:29 +00:00
brad
d5b197e53f Bring in some commits from upstream..
r213105
Use the integrated assembler by default on OpenBSD/sparc

r212838
Handle SPARC float command line parameters for SPARCv9.

ok matthew@
2014-07-16 22:16:54 +00:00
brad
9d0a0c6200 Sync up the SPARC backend up to commit r203424.
ok matthew@
2014-07-11 01:05:24 +00:00
brad
5508a97976 Bring in fixes from 3.4.1 / 3.4.2 that do not already exist in the
3.5 snapshot (which around 60% of them did)..

r203025, r203050, r203054, r203281, r203581, r203719, r203818, r204155, r204304,
r205067, r205630, r205738, r207990, r208501.

ok matthew@
2014-07-10 22:46:37 +00:00
brad
e1c644379d r211624
Use appropriate default PIE settings for OpenBSD.

ok matthew@
2014-07-10 19:26:48 +00:00
brad
07775f755c Add SVN commit revision. 2014-06-16 23:14:15 +00:00
brad
db151cc6a6 Some fixes from uptream..
- Use dwarf-2 by default on OpenBSD and FreeBSD.
- Make VSELECT selection terminate in cases where the condition type has
  to be split and the result type widened.
  (fixes an OOM crash with the vectorizer on i386 if not utilizing SSE2
   or newer)
- The last step of _mm_cvtps_pi16 should use _mm_packs_pi32, which is a
  function that reads two __m64 values and packs four 32-bit values into
  four 16-bit values.

Fix profiling..

- Alias the command line parameter -p to -pg.

From Bitrig

ok sthen@
2014-06-13 22:29:40 +00:00