summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/varasm.c
Commit message (Collapse)AuthorAgeFilesLines
* gcc: Add support for Apple's Block extensionpfg2014-01-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Block objects [1] are a C-level syntactic and runtime feature. They are similar to standard C functions, but in addition to executable code they may also contain variable bindings to automatic (stack) or managed (heap) memory. A block can therefore maintain a set of state (data) that it can use to impact behavior when executed. This port is based on Apple's GCC 5646 with some bugfixes from Apple GCC 5666.3. It has some small differences with the support in clang, which remains the recommended compiler. Perhaps the most notable difference is that in GCC that __block is not actually a keyword, but a macro. There will be workaround for this issue in a near future. Other issues can be consulted in the clang documentation [2] For better compatiblity with Apple's GCC and llvm-gcc some related fixes and features from Apple have been included. Support for the non-standard nested functions in GCC is now off by default. No effort was made to update the ObjC support since FreeBSD doesn't carry ObjC in the base system, but some of the code crept in and was more difficult to remove than to adjust. Reference: [1] https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html [2] http://clang.llvm.org/compatibility.html#block-variable-initialization Obtained from: Apple GCC 4.2 MFC after: 3 weeks
* gcc: upstream alignment cleanups.pfg2013-11-291-7/+6
| | | | | | | | | | This solves GCC/32617 and contributes to reduce differences with Apple's gcc42. Complete some references in the ChangeLog while here. Obtained from: gcc 4.3 (rev. 126529, 126588; GPLv2) MFC after: 3 weeks
* Bring in a subset of gcc fixes that were back ported topfg2012-05-181-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the GCC 4.1 branch and are available under GPLv2. 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> PR rtl-optimization/33822 * rtl.h (REG_OFFSET): Fix comment. * var-tracking.c (INT_MEM_OFFSET): New macro. (var_mem_set): Use it. (var_mem_delete_and_set): Likewise. (var_mem_delete): Likewise. (vt_get_decl_and_offset): Likewise. (offset_valid_for_tracked_p): New predicate. (count_uses): Do not track locations with invalid offsets. (add_uses): Likewise. (add_stores): Likewise. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129972 2007-11-16 Richard Guenther <rguenther@suse.de> PR middle-end/34030 * fold-const.c (fold_binary): Use correct types for folding 1 << X & Y to Y >> X & 1. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=130242 2008-01-14 Eric Botcazou <ebotcazou@adacore.com> PR rtl-optimization/31944 * cse.c (remove_pseudo_from_table): New function. (merge_equiv_classes): Use above function to remove pseudo-registers. (invalidate): Likewise http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131524 2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Backport: 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> PR middle-end/33826 * ipa-pure-const (static_execute): Added code to keep recursive functions from being marked as pure or const. * ipa-utils (searchc): Fixed comment. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131807 2008-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Backport: 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> PR middle-end/25445 * varasm.c (default_binds_local_p_1): Consult flag_whole_program if we are compiling with -fPIC. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132061 2008-02-04 Richard Guenther <rguenther@suse.de> PR middle-end/33631 * expr.c (count_type_elements): Give for unions instead of guessing. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132101 2008-02-14 Alan Modra <amodra@bigpond.net.au> PR target/34393 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1] to a reg. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132309 2008-03-25 Richard Guenther <rguenther@suse.de> Backport from mainline: 2008-02-12 Richard Guenther <rguenther@suse.de> PR middle-end/35163 * fold-const.c (fold_widened_comparison): Use get_unwidened in value-preserving mode. Disallow final truncation. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133509 2008-11-30 Eric Botcazou <ebotcazou@adacore.com> PR target/38287 * config/sparc/sparc.md (divsi3 expander): Remove constraints. (divsi3_sp32): Add new alternative with 'K' for operand #2. (cmp_sdiv_cc_set): Factor common string. (udivsi3_sp32): Add new alternative with 'K' for operand #2. Add TARGET_V9 case. (cmp_udiv_cc_set): Factor common string. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142298 Reviewed by: mm Approved by: jhb (mentor) MFC after: 1 week
* Apply backported fix for gcc PR 20218. This makes __attribute__dim2010-11-251-8/+26
| | | | | | | ((visibility ("hidden"))) work properly, and fixes building devel/glib20 with newer binutils. Silence from: current@
* GCC 4.2.0 release.kan2007-05-191-1899/+2826
|
* Gcc 3.4.4 release.kan2005-06-031-70/+131
|
* Gcc 3.4.2 20040728.kan2004-07-281-1041/+773
|
* Gcc 3.3.3 20031106.kan2003-11-071-13/+38
|
* Gcc 3.3.1-release.kan2003-08-221-0/+17
|
* Gcc 3.3.1-pre as of 2003-07-11.kan2003-07-111-1058/+1114
|
* Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)obrien2002-12-041-1/+0
|
* Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on October 9th ↵kan2002-10-101-0/+2
| | | | 2002 20:15 EST.
* Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on 1-Sep-2002 ↵kan2002-09-011-19/+24
| | | | 00:00:01 EDT.
* Gcc 3.1.0 pre-release from the FSF anoncvs repo on 9-May-2002 15:57:15 EDT.obrien2002-05-091-114/+289
|
* Enlist the FreeBSD-CURRENT users as testers of what is to become Gcc 3.1.0.obrien2002-02-011-1569/+2295
| | | | These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
* Import the setjump/longjump exception handling fixes from GCC 2.95.3.test3obrien2001-03-241-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | that were removed from GCC 2.95.3.test4 and the subsequent release due to problems on HP-UX. However, they work just fine on all the BSD's. W/o these patches the following program segmentation faults if compiled with -O2 (but not -Os or -O or -O0): #include <stdio.h> class A { public: A() { printf("c'tor A\n"); } ~A(){ printf("d'tor A\n"); } }; class foo : public A { public: foo() { printf("C'tor foo\n"); throw 8; } ~foo() { printf("D'tor foo\n"); } }; int main(){ try { foo fii; } catch (int){ printf("catch ...\n"); } return 0; }
* Virgin import of the GCC 2.95.3 compilersobrien2001-03-191-12/+0
|
* Enlist the FreeBSD-CURRENT users as testers of GCC 2.95.3 Release Candidate #3obrien2001-02-171-1/+14
|
* Virgin import of the GCC 2.95.1 compilersobrien1999-10-161-90/+177
|
* Virgin import of gcc from EGCS 1.1.2obrien1999-08-261-762/+1098
|
* Virgin import of GCC 2.7.2.3obrien1999-07-101-0/+2
|
* Import of unmodified (but trimmed) gcc-2.7.2. The bigger parts of thepeter1996-09-181-0/+4064
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
OpenPOWER on IntegriCloud