| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang600-import/; revision=327023
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=321238
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=320970
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=320572
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=320397
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=320041
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=319799
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=319479
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=319250
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=319164
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=318681
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=318477
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=318384
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=317969
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue (preliminary, not all option combinations work yet).
Notes:
    svn path=/projects/clang500-import/; revision=317778
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang500-import/; revision=317472
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang500-import/; revision=317230
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang500-import/; revision=317029
 | 
| | 
| 
| 
| 
| 
| 
|  | 
r293807, and update build glue.
Notes:
    svn path=/projects/clang400-import/; revision=313067
 | 
| | 
| 
| 
| 
| 
| 
|  | 
build glue.
Notes:
    svn path=/projects/clang400-import/; revision=312197
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang400-import/; revision=311544
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang400-import/; revision=311327
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang400-import/; revision=311142
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang391-import/; revision=309175
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PowerPC] Refactor soft-float support, and enable PPC64 soft float
  This change enables soft-float for PowerPC64, and also makes
  soft-float disable all vector instruction sets for both 32-bit and
  64-bit modes. This latter part is necessary because the PPC backend
  canonicalizes many Altivec vector types to floating-point types, and
  so soft-float breaks scalarization support for many operations. Both
  for embedded targets and for operating-system kernels desiring
  soft-float support, it seems reasonable that disabling hardware
  floating-point also disables vector instructions (embedded targets
  without hardware floating point support are unlikely to have Altivec,
  etc. and operating system kernels desiring not to use floating-point
  registers to lower syscall cost are unlikely to want to use vector
  registers either). If someone needs this to work, we'll need to
  change the fact that we promote many Altivec operations to act on
  v4f32. To make it possible to disable Altivec when soft-float is
  enabled, hardware floating-point support needs to be expressed as a
  positive feature, like the others, and not a negative feature,
  because target features cannot have dependencies on the disabling of
  some other feature. So +soft-float has now become -hard-float.
  Fixes PR26970.
Pull in r283061 from upstream clang trunk (by Hal Finkel):
  [PowerPC] Enable soft-float for PPC64, and +soft-float -> -hard-float
  Enable soft-float support on PPC64, as the backend now supports it.
  Also, the backend now uses -hard-float instead of +soft-float, so set
  the target features accordingly.
  Fixes PR26970.
Reported by:	Mark Millard
PR:		214433
Notes:
    svn path=/head/; revision=309149
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PPC] Set SP after loading data from stack frame, if no red zone is
  present
  Follow-up to r280705: Make sure that the SP is only restored after
  all data is loaded from the stack frame, if there is no red zone.
  This completes the fix for
  https://llvm.org/bugs/show_bug.cgi?id=26519.
  Differential Revision: https://reviews.llvm.org/D24466
Reported by:    Mark Millard
PR:             214433
Notes:
    svn path=/head/; revision=309147
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PPC] Claim stack frame before storing into it, if no red zone is
  present
  Unlike PPC64, PPC32/SVRV4 does not have red zone. In the absence of
  it there is no guarantee that this part of the stack will not be
  modified by any interrupt. To avoid this, make sure to claim the
  stack frame first before storing into it.
  This fixes https://llvm.org/bugs/show_bug.cgi?id=26519.
  Differential Revision: https://reviews.llvm.org/D24093
Notes:
    svn path=/projects/clang390-import/; revision=305686
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Add ISD::EH_DWARF_CFA, simplify @llvm.eh.dwarf.cfa on Mips, fix on
  PowerPC
  LLVM has an @llvm.eh.dwarf.cfa intrinsic, used to lower the
  GCC-compatible __builtin_dwarf_cfa() builtin. As pointed out in
  PR26761, this is currently broken on PowerPC (and likely on ARM as
  well). Currently, @llvm.eh.dwarf.cfa is lowered using:
    ADD(FRAMEADDR, FRAME_TO_ARGS_OFFSET)
  where FRAME_TO_ARGS_OFFSET defaults to the constant zero. On x86,
  FRAME_TO_ARGS_OFFSET is lowered to 2*SlotSize. This setup, however,
  does not work for PowerPC. Because of the way that the stack layout
  works, the canonical frame address is not exactly (FRAMEADDR +
  FRAME_TO_ARGS_OFFSET) on PowerPC (there is a lower save-area offset
  as well), so it is not just a matter of implementing
  FRAME_TO_ARGS_OFFSET for PowerPC (unless we redefine its semantics --
  We can do that, since it is currently used only for
  @llvm.eh.dwarf.cfa lowering, but the better to directly lower the CFA
  construct itself (since it can be easily represented as a
  fixed-offset FrameIndex)). Mips currently does this, but by using a
  custom lowering for ADD that specifically recognizes the (FRAMEADDR,
  FRAME_TO_ARGS_OFFSET) pattern.
  This change introduces a ISD::EH_DWARF_CFA node, which by default
  expands using the existing logic, but can be directly lowered by the
  target. Mips is updated to use this method (which simplifies its
  implementation, and I suspect makes it more robust), and updates
  PowerPC to do the same.
  Fixes PR26761.
  Differential Revision: https://reviews.llvm.org/D24038
Notes:
    svn path=/projects/clang390-import/; revision=305683
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PowerPC] Don't spill the frame pointer twice
  When a function contains something, such as inline asm, which
  explicitly clobbers the register used as the frame pointer, don't
  spill it twice. If we need a frame pointer, it will be saved/restored
  in the prologue/epilogue code.  Explicitly spilling it again will
  reuse the same spill slot used by the prologue/epilogue code, thus
  clobbering the saved value. The same applies to the base-pointer or
  PIC-base register.
  Partially fixes PR26856. Thanks to Ulrich for his analysis and the
  small inline-asm reproducer.
Notes:
    svn path=/projects/clang390-import/; revision=305681
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PowerPC] Add support for -mlongcall
  The "long call" option forces the use of the indirect calling
  sequence for all calls (even those that don't really need it). GCC
  provides this option; This is helpful, under certain circumstances,
  for building very-large binaries, and some other specialized use
  cases.
  Fixes PR19098.
Pull in r280041 from upstream clang trunk (by Hal Finkel):
  [PowerPC] Add support for -mlongcall
  Add support for GCC's PowerPC -mlongcall option; the backend supports
  the corresponding target feature as of r280040.
  Fixes PR19098.
Notes:
    svn path=/projects/clang390-import/; revision=305680
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang390-import/; revision=304770
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang390-import/; revision=304240
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang380-import/; revision=296011
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang380-import/; revision=295600
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang380-import/; revision=294024
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang380-import/; revision=292941
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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.
Notes:
    svn path=/head/; revision=292735
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang370-import/; revision=287521
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang-trunk/; revision=286684
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang-trunk/; revision=285181
 | 
| | 
| 
| 
|  | 
Notes:
    svn path=/projects/clang-trunk/; revision=284734
 | 
| | 
| 
| 
| 
| 
| 
|  | 
r239412.
Notes:
    svn path=/projects/clang-trunk/; revision=284236
 | 
| | 
| 
| 
| 
| 
| 
|  | 
preserve our customizations, where necessary.
Notes:
    svn path=/projects/clang-trunk/; revision=283631
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This release contains the following cherry-picked revisions from
upstream trunk:
  226124 226151 226164 226165 226166 226407 226408 226409 226652
  226905 226983 227084 227087 227089 227208 227209 227210 227211
  227212 227213 227214 227269 227430 227482 227503 227519 227574
  227822 227986 227987 227988 227989 227990 228037 228038 228039
  228040 228188 228189 228190 228273 228372 228373 228374 228403
  228765 228848 228918 229223 229225 229226 229227 229228 229230
  229234 229235 229236 229238 229239 229413 229507 229680 229750
  229751 229752 229911 230146 230147 230235 230253 230255 230469
  230500 230564 230603 230657 230742 230748 230956 231219 231237
  231245 231259 231280 231451 231563 231601 231658 231659 231662
  231984 231986 232046 232085 232142 232176 232179 232189 232382
  232386 232389 232425 232438 232443 232675 232786 232797 232943
  232957 233075 233080 233351 233353 233409 233410 233508 233584
  233819 233904 234629 234636 234891 234975 234977 235524 235641
  235662 235931 236099 236306 236307
Please note that from 3.5.0 onwards, clang and llvm require C++11
support to build; see UPDATING for more information.
Notes:
    svn path=/head/; revision=283526
 | 
| | 
| 
| 
| 
| 
| 
|  | 
^/vendor/clang/dist, resolve conflicts, and update patches README.
Notes:
    svn path=/projects/clang360-import/; revision=278757
 | 
| | 
| 
| 
| 
| 
| 
|  | 
^/vendor/clang/dist, resolve conflicts, and cleanup patches.
Notes:
    svn path=/projects/clang360-import/; revision=278002
 | 
| | 
| 
| 
| 
| 
| 
|  | 
^/vendor/clang/dist, resolve conflicts, and cleanup patches.
Notes:
    svn path=/projects/clang360-import/; revision=277718
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
only release, no new features have been added.
Please note that this version requires C++11 support to build; see
UPDATING for more information.
Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.5.1/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.5.1/tools/clang/docs/ReleaseNotes.html>
MFC after:	1 month
X-MFC-With:	276479
Notes:
    svn path=/head/; revision=277320
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
PowerPC: CTR shouldn't fire if a TLS call is in the loop
  Determining the address of a TLS variable results in a function call in
  certain TLS models.  This means that a simple ICmpInst might actually
  result in invalidating the CTR register.
  In such cases, do not attempt to rely on the CTR register for loop
  optimization purposes.
  This fixes PR22034.
  Differential Revision: http://reviews.llvm.org/D6786
This fixes a "Invalid PPC CTR loop" error when compiling parts of libc
for PowerPC-32.
Notes:
    svn path=/projects/clang350-import/; revision=276324
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
[PowerPC] Replace foul hackery with real calls to __tls_get_addr
  My original support for the general dynamic and local dynamic TLS
  models contained some fairly obtuse hacks to generate calls to
  __tls_get_addr when lowering a TargetGlobalAddress.  Rather than
  generating real calls, special GET_TLS_ADDR nodes were used to wrap
  the calls and only reveal them at assembly time.  I attempted to
  provide correct parameter and return values by chaining CopyToReg and
  CopyFromReg nodes onto the GET_TLS_ADDR nodes, but this was also not
  fully correct.  Problems were seen with two back-to-back stores to TLS
  variables, where the call sequences ended up overlapping with unhappy
  results.  Additionally, since these weren't real calls, the proper
  register side effects of a call were not recorded, so clobbered values
  were kept live across the calls.
  The proper thing to do is to lower these into calls in the first
  place.  This is relatively straightforward; see the changes to
  PPCTargetLowering::LowerGlobalTLSAddress() in PPCISelLowering.cpp.
  The changes here are standard call lowering, except that we need to
  track the fact that these calls will require a relocation.  This is
  done by adding a machine operand flag of MO_TLSLD or MO_TLSGD to the
  TargetGlobalAddress operand that appears earlier in the sequence.
  The calls to LowerCallTo() eventually find their way to
  LowerCall_64SVR4() or LowerCall_32SVR4(), which call FinishCall(),
  which calls PrepareCall().  In PrepareCall(), we detect the calls to
  __tls_get_addr and immediately snag the TargetGlobalTLSAddress with
  the annotated relocation information.  This becomes an extra operand
  on the call following the callee, which is expected for nodes of type
  tlscall.  We change the call opcode to CALL_TLS for this case.  Back
  in FinishCall(), we change it again to CALL_NOP_TLS for 64-bit only,
  since we require a TOC-restore nop following the call for the 64-bit
  ABIs.
  During selection, patterns in PPCInstrInfo.td and PPCInstr64Bit.td
  convert the CALL_TLS nodes into BL_TLS nodes, and convert the
  CALL_NOP_TLS nodes into BL8_NOP_TLS nodes.  This replaces the code
  removed from PPCAsmPrinter.cpp, as the BL_TLS or BL8_NOP_TLS
  nodes can now be emitted normally using their patterns and the
  associated printTLSCall print method.
  Finally, as a result of these changes, all references to get-tls-addr
  in its various guises are no longer used, so they have been removed.
  There are existing TLS tests to verify the changes haven't messed
  anything up).  I've added one new test that verifies that the problem
  with the original code has been fixed.
This fixes a fatal "Bad machine code" error when compiling parts of
libgomp for 32-bit PowerPC.
Notes:
    svn path=/projects/clang350-import/; revision=276301
 |