| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If 'x' is a temporary, x.getAs<Foo>() may not be safe if the result is
supposed to persist (if its address is stored somewhere). Since getAs()
can return a null value, the result is almost always stored into a
variable, which of course is not safe when the original value dies.
This has caused several bugs with GCC's "Temporaries May Vanish Sooner Than
You Expect" optimization; in C++11 builds, at least, we'll be able to catch
these problems now.
I would suggest applying these to other getAs() and get*As() methods
(castAs is "better" because sometimes the result is used directly, which
means the temporary will still be live), but these two have both caused
trouble in the analyzer in the past.
llvm-svn: 168967
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generation.
We don't use the exact same way to build loop body for GPGPU codegen as openmp
codegen and other transformations do currently, in which cases 'createLoop'
function is called recursively. GPGPU codegen may fail due to improper restore
of ValueMap and ClastVars .
Contributed by: Yabin Hu <yabin.hwu@gmail.com>
llvm-svn: 168966
|
|
|
|
|
|
|
|
|
| |
more information for dependences between
instructions that don't share a common loop.
Updated the test results appropriately.
llvm-svn: 168965
|
|
|
|
|
|
|
| |
polly::createLoop.
Contributed-by: Yabin Hu <yabin.hwu@gmail.com>
llvm-svn: 168964
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This expands to '&', and is intended to be used when an /optional/ rvalue
override is available.
Before:
void foo() const { ... }
After:
void foo() const LLVM_LVALUE_FUNCTION { ... }
void foo() && { ... }
This is used to allow moving the contents of an Optional.
llvm-svn: 168963
|
|
|
|
| |
llvm-svn: 168962
|
|
|
|
|
|
|
|
|
|
|
|
| |
import of that module elsewhere, don't try to build the module again:
it won't work, and the experience is quite dreadful. We track this
information somewhat globally, shared among all of the related
CompilerInvocations used to build modules on-the-fly, so that a
particular Clang instance will only try to build a given module once.
Fixes <rdar://problem/12552849>.
llvm-svn: 168961
|
|
|
|
|
|
| |
which would then cause an assert when printed. rdar://11437956
llvm-svn: 168960
|
|
|
|
| |
llvm-svn: 168959
|
|
|
|
| |
llvm-svn: 168958
|
|
|
|
| |
llvm-svn: 168957
|
|
|
|
| |
llvm-svn: 168956
|
|
|
|
|
|
|
| |
tests will still fail if compiler-rt was built with a compiler without __int128
support, but the host compiler has __int128 support.
llvm-svn: 168955
|
|
|
|
| |
llvm-svn: 168953
|
|
|
|
| |
llvm-svn: 168952
|
|
|
|
|
|
| |
output tests
llvm-svn: 168951
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
features of ASan:
1) init-order sanitizer: initialization-order checker.
Status: usable, but may produce false positives w/o proper blacklisting.
2) use-after-return sanitizer
Status: implemented, but heavily understed.
Should be optional, as it significanlty slows program down.
3) use-after-scope sanitizer
Status: in progress.
llvm-svn: 168950
|
|
|
|
|
|
|
|
| |
Emit an error when using "target modules add PATH" where PATH points to a debug info only (dSYM) file.
Also added a "--uuid" option for "target modules add --uuid UUID" to locate and load a module by UUID if the host supports it.
llvm-svn: 168949
|
|
|
|
|
|
|
| |
Prevent async and sync calls to get profile data from stomping on each other.
At the same time, don't use '$' as end delimiter per chunk of profile data.
llvm-svn: 168948
|
|
|
|
| |
llvm-svn: 168946
|
|
|
|
|
|
|
|
| |
- use macros from inttypes.h for format strings instead of OS-specific types
Patch from Matt Kopec!
llvm-svn: 168945
|
|
|
|
| |
llvm-svn: 168943
|
|
|
|
|
|
| |
same string
llvm-svn: 168942
|
|
|
|
| |
llvm-svn: 168941
|
|
|
|
| |
llvm-svn: 168937
|
|
|
|
| |
llvm-svn: 168936
|
|
|
|
|
|
| |
Should bring the buildbots back to life.
llvm-svn: 168935
|
|
|
|
|
|
|
| |
Note: the ":" goes into the regex because FileCheck wrongly complains about
unbalanced brackets otherwise.
llvm-svn: 168934
|
|
|
|
| |
llvm-svn: 168933
|
|
|
|
| |
llvm-svn: 168932
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This revision attempts to recognize following population-count pattern:
while(a) { c++; ... ; a &= a - 1; ... },
where <c> and <a>could be used multiple times in the loop body.
TODO: On X8664 and ARM, __buildin_ctpop() are not expanded to a efficent
instruction sequence, which need to be improved in the following commits.
Reviewed by Nadav, really appreciate!
llvm-svn: 168931
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the last invoke instruction in the function. This also removes the last landing
pad in an function. This is fine, but with SjLj EH code, we've already placed a
bunch of code in the 'entry' block, which expects the landing pad to stick
around.
When we get to the situation where CGP has removed the last landing pad, go
ahead and nuke the SjLj instructions from the 'entry' block.
<rdar://problem/12721258>
llvm-svn: 168930
|
|
|
|
| |
llvm-svn: 168929
|
|
|
|
|
|
| |
invariant code any more.
llvm-svn: 168928
|
|
|
|
|
|
| |
in the preheader.
llvm-svn: 168927
|
|
|
|
|
|
| |
This enables option cross-referencing and now '--' in option names are no more turned into en dashes.
llvm-svn: 168926
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch migrates the puts optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
All the simplifiers from simplify-libcalls have now been migrated to
instcombine. Yay! Just a few other bits to migrate (prototype attribute
inference and a few statistics) and simplify-libcalls can finally be put
to rest.
llvm-svn: 168925
|
|
|
|
| |
llvm-svn: 168924
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MachOObjectFile owns a MachOObj, but never frees it. Both MachOObjectFile
and MachOObj want to own the MemoryBuffer, though, so we have to be careful
and give them each one of their own.
Thanks to Greg Clayton, Eric Christopher and Michael Spencer for helping
figure out what's going wrong here.
rdar://12561773
llvm-svn: 168923
|
|
|
|
| |
llvm-svn: 168922
|
|
|
|
|
|
|
|
| |
just return the value for the right predicate.
Thanks to Andy for catching this.
llvm-svn: 168921
|
|
|
|
| |
llvm-svn: 168920
|
|
|
|
| |
llvm-svn: 168919
|
|
|
|
|
|
| |
before libstdc++ like we do with ubsan.
llvm-svn: 168918
|
|
|
|
|
|
| |
Be sure to resolve the file path for the "target.process.python-os-plugin-path" setting.
llvm-svn: 168916
|
|
|
|
|
|
|
|
| |
Add new rpath for LLDB: ../../Library/PrivateFrameworks
Also moved the debugserver plists into the Resources group.
llvm-svn: 168915
|
|
|
|
| |
llvm-svn: 168914
|
|
|
|
|
|
| |
the module is blacklisted.
llvm-svn: 168913
|
|
|
|
| |
llvm-svn: 168912
|
|
|
|
| |
llvm-svn: 168911
|