- Jul 03, 2013
-
-
Daniel Jasper authored
This fixes llvm.org/PR16514. llvm-svn: 185531
-
Daniel Jasper authored
In general, clang-format breaks after an operator if the LHS spans multiple lines. Otherwise, this can lead to confusing effects and effectively hide the operator precendence, e.g. in if (aaaaaaaaaaaaaa == bbbbbbbbbbbbbb && c) { ... This patch removes this rule for comparisons, if the LHS is not a binary expression itself as many users were wondering why clang-format inserts an unnecessary linebreak. Before: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ... After: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ... In the long run, we might: - Want to do this for other binary expressions as well. - Do this only if the RHS is short or even only if it is a literal. llvm-svn: 185530
-
Richard Sandiford authored
Add a mapping from register-based <INSN>R instructions to the corresponding memory-based <INSN>. Use it to cut down on the number of spill loads. Some instructions extend their operands from smaller fields, so this required a new TSFlags field to say how big the unextended operand is. This optimisation doesn't trigger for C(G)R and CL(G)R because in practice we always combine those instructions with a branch. Adding a test for every other case probably seems excessive, but it did catch a missed optimisation for DSGF (fixed in r185435). llvm-svn: 185529
-
Mihai Popa authored
1. it should accept only 4-byte aligned addresses 2. the maximum offset should be 1020 3. it should be encoded with the offset scaled by two bits llvm-svn: 185528
-
Tim Northover authored
Swift cores implement store barriers that are stronger than the ARM specification but weaker than general barriers. They are, in fact, just about enough to provide the ordering needed for atomic operations with release semantics. This patch makes use of that quirk. llvm-svn: 185527
-
Richard Sandiford authored
Rename Function->DispKey and PairType->DispSize. I'd originally used "Function" because I thought it might be useful for other InstMappings. However, it turns out that having two very similar instructions with the same Function makes it pretty useless for anything other than the displacement size key. Other InstMappings will want the key to be defined for only one instruction in the pair. No behavioural change intended. llvm-svn: 185526
-
Richard Sandiford authored
Get rid of some old code (and associated FIXME) for handling the caller-allocated register save area. No behavioural change intended. llvm-svn: 185525
-
Rui Ueyama authored
llvm-svn: 185524
-
Eric Christopher authored
llvm-svn: 185523
-
Pavel Labath authored
Summary: The analyzer incorrectly handled noreturn destructors which were hidden inside function calls. This happened because NoReturnFunctionChecker only listened for PostStmt events, which are not executed for destructor calls. I've changed it to listen to PostCall events, which should catch both cases. Reviewers: jordan_rose CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1056 llvm-svn: 185522
-
Rui Ueyama authored
The optional data directory header contains addresses to some atoms such as the import address table in data section. Such fields can naturally be set by relocation if we make the optional data driectory as an atom. Currently we assume that atoms are always in a section, so we can't create a file header with atoms. This patch separates section chunk from atom chunk, to allow atom-based file header. llvm-svn: 185521
-
Eric Christopher authored
llvm-svn: 185520
-
Richard Osborne authored
llvm-svn: 185519
-
Richard Osborne authored
Patch by Robert Lytton. llvm-svn: 185518
-
Rui Ueyama authored
llvm-svn: 185517
-
Rui Ueyama authored
A hint is an index of the export pointer table in a DLL, at which PE/COFF loader starts looking for a symbol name. The import library comes with hints and symbol pairs, and as long as hints are in sync with the actual symbol table in DLL, the symbols will be resolved quickly. So, we shouldn't ignore hints but propagate them to an output. llvm-svn: 185516
-
Rui Ueyama authored
llvm-svn: 185515
-
Craig Topper authored
llvm-svn: 185514
-
Craig Topper authored
llvm-svn: 185513
-
Craig Topper authored
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily. llvm-svn: 185512
-
Eric Christopher authored
to avoid specifying the vector size. llvm-svn: 185511
-
Jason Molenda authored
OS X. Testsuite shows no change in results using the system runtime's demangler. <rdar://problem/12029914> llvm-svn: 185510
-
Craig Topper authored
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. llvm-svn: 185509
-
Craig Topper authored
Introduce some typedefs for DenseMaps containing SmallVectors so the vector size doesn't have to repeated when creating iterators for the DenseMap. llvm-svn: 185508
-
Craig Topper authored
Return SmallVectorImpl& instead of SmallVector& in a couple places to avoid having to specify the vector size in multiple places. llvm-svn: 185507
-
Craig Topper authored
llvm-svn: 185506
-
Craig Topper authored
Use SmallVectorImpl& instead of SmallVector& to avoid needlessly respecifying the small vector size. llvm-svn: 185505
-
Craig Topper authored
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. llvm-svn: 185504
-
Michael Gottesman authored
llvm-svn: 185503
-
Michael Gottesman authored
Added support in FunctionAttrs for adding relevant function/argument attributes for the posix call gettimeofday. This implies annotating it as nounwind and its arguments as nocapture. To be conservative, we do not annotate the arguments with noalias since some platforms do not have restrict on the declaration for gettimeofday. llvm-svn: 185502
-
Michael Gottesman authored
*NOTE* In a recent version of posix, they added the restrict keyword to the arguments for this function. From some spelunking it seems that on some platforms, the call has restrict on its arguments and others it does not. Thus I left off the restrict keyword from the function prototype in the comment. llvm-svn: 185501
-
Eric Christopher authored
avoid adding information for the debug_inlined section when it isn't going to be emitted anyhow. llvm-svn: 185500
-
NAKAMURA Takumi authored
llvm-svn: 185499
-
Eric Christopher authored
llvm-svn: 185498
-
Eric Christopher authored
llvm-svn: 185497
-
Eric Christopher authored
grep. llvm-svn: 185496
-
Eric Christopher authored
llvm-svn: 185495
-
Michael Sartain authored
Differential Revision: http://llvm-reviews.chandlerc.com/D1081 llvm-svn: 185494
-
Serge Pavlov authored
llvm-svn: 185493
-
Eric Christopher authored
llvm-svn: 185492
-