Bug 202596 - Fix pessimizing moves in devel/llvm36, for the benefit of other ports
Summary: Fix pessimizing moves in devel/llvm36, for the benefit of other ports
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Brooks Davis
URL:
Keywords:
Depends on:
Blocks: 201377
  Show dependency treegraph
 
Reported: 2015-08-23 16:40 UTC by Dimitry Andric
Modified: 2015-08-25 23:55 UTC (History)
1 user (show)

See Also:


Attachments
Fix pessimizing moves in devel/llvm36 (2.40 KB, patch)
2015-08-23 16:40 UTC, Dimitry Andric
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dimitry Andric freebsd_committer freebsd_triage 2015-08-23 16:40:33 UTC
Created attachment 160255 [details]
Fix pessimizing moves in devel/llvm36

During the exp-run in bug 201377, it was found that lang/rust and lang/rust-devel give errors with a recent clang 3.7.0 snapshot:

http://package18.nyi.freebsd.org/data/headamd64PR201377-default/2015-07-31_13h29m42s/logs/errors/rust-1.1.0.log
http://package18.nyi.freebsd.org/data/headamd64PR201377-default/2015-07-31_13h29m42s/logs/errors/rust-nightly-1.3.0.20150703.log

This is because the ports include headers from the devel/llvm36 port, and some of these headers contain std::move() calls to temporary objects, which is a pessimization.

Upstream llvm has removed the std::move() calls here:
http://llvm.org/viewvc/llvm-project?view=revision&revision=236316

but since the external headers matter for other ports, I've patched only those.
Comment 1 commit-hook freebsd_committer freebsd_triage 2015-08-25 23:09:03 UTC
A commit references this bug:

Author: brooks
Date: Tue Aug 25 23:08:53 UTC 2015
New revision: 395325
URL: https://svnweb.freebsd.org/changeset/ports/395325

Log:
  Fix pessimizing moves in devel/llvm36, for the benefit of other ports

  PR:		202596
  Submitted by:	dim

Changes:
  head/devel/llvm36/Makefile
  head/devel/llvm36/files/patch-include__llvm__ADT__APFloat.h
  head/devel/llvm36/files/patch-include__llvm__IR__PassManager.h