- Nov 09, 2013
-
-
Chandler Carruth authored
give the files a legacy prefix in the right directory. Use forwarding headers in the old locations to paper over the name change for most clients during the transitional period. No functionality changed here! This is just clearing some space to reduce renaming churn later on with a new system. Even when the new stuff starts to go in, it is going to be hidden behind a flag and off-by-default as it is still WIP and under development. This patch is specifically designed so that very little out-of-tree code has to change. I'm going to work as hard as I can to keep that the case. Only direct forward declarations of the PassManager class are impacted by this change. llvm-svn: 194324
-
Filip Pizlo authored
This exposes the new calling conventions (WebKit_JS and AnyReg) via the C API by adding them to the enumeration in Core.h. llvm-svn: 194323
-
Chandler Carruth authored
a derived type and this makes it *much* easier to write this code. llvm-svn: 194321
-
Chandler Carruth authored
llvm-svn: 194320
-
Chandler Carruth authored
r-value references. I still want to test that when we have them, llvm_move is actually a move. Have I mentioned that I really want to move to C++11? ;] llvm-svn: 194318
-
Chandler Carruth authored
Clang managed to never instantiate the copy constructor. Added tests to ensure this path is tested. We could still use tests for the polymorphic nature. Those coming up next. llvm-svn: 194317
-
Chandler Carruth authored
to fix C++98 builds. llvm-svn: 194316
-
Chandler Carruth authored
unique ownership smart pointer which is *deep* copyable by assuming it can call a T::clone() method to allocate a copy of the owned data. This is mostly useful with containers or other collections of uniquely owned data in C++98 where they *might* copy. With C++11 we can likely remove this in favor of move-only types and containers wrapped around those types. llvm-svn: 194315
-
NAKAMURA Takumi authored
llvm-svn: 194314
-
NAKAMURA Takumi authored
llvm-svn: 194313
-
Lang Hames authored
llvm-svn: 194311
-
Akira Hatanaka authored
formal arguments on the stack and stores created afterwards. We need this to ensure tail call optimized function calls do not write over the argument area of the stack before it is read out. llvm-svn: 194309
-
Nick Lewycky authored
llvm-svn: 194308
-
Juergen Ributzka authored
This patch moves the jump address materialization inside the noop slide. This enables patching of the materialization itself or its complete removal. This patch also adds the ability to define scratch registers that can be used safely by the code called from the patchpoint intrinsic. At least one scratch register is required, because that one is used for the materialization of the jump address. This patch depends on D2009. Differential Revision: http://llvm-reviews.chandlerc.com/D2074 Reviewed by Andy llvm-svn: 194306
-
Adrian Prantl authored
This would cause internal symbols that are only referenced by global initializers to be removed. This reverts commit 194219. llvm-svn: 194304
-
Adrian Prantl authored
This reverts commit 194219. llvm-svn: 194303
-
Lang Hames authored
The new graph structure replaces the node and edge linked lists with vectors. Free lists (well, free vectors) are used for fast insertion/deletion. The ultimate aim is to make PBQP graphs cheap to clone. The motivation is that the PBQP solver destructively consumes input graphs while computing a solution, forcing the graph to be fully reconstructed for each round of PBQP. This imposes a high cost on large functions, which often require several rounds of solving/spilling to find a final register allocation. If we can cheaply clone the PBQP graph and incrementally update it between rounds then hopefully we can reduce this cost. Further, once we begin pooling matrix/vector values (future work), we can cache some PBQP solver metadata and share it between cloned graphs, allowing the PBQP solver to re-use some of the computation done in earlier rounds. For now this is just a data structure update. The allocator and solver still use the graph the same way as before, fully reconstructing it between each round. I expect no material change from this update, although it may change the iteration order of the nodes, causing ties in the solver to break in different directions, and this could perturb the generated allocations (hopefully in a completely benign way). Thanks very much to Arnaud Allard de Grandmaison for encouraging me to get back to work on this, and for a lot of discussion and many useful PBQP test cases. llvm-svn: 194300
-
Juergen Ributzka authored
The idea of the AnyReg Calling Convention is to provide the call arguments in registers, but not to force them to be placed in a paticular order into a specified set of registers. Instead it is up tp the register allocator to assign any register as it sees fit. The same applies to the return value (if applicable). Differential Revision: http://llvm-reviews.chandlerc.com/D2009 Reviewed by Andy llvm-svn: 194293
-
- Nov 08, 2013
-
-
Pedro Artigas authored
increase the accuracy of register pressure computation in the presence of dead definitions by using live intervals, if available, to identify dead definitions and proceed accordingly. llvm-svn: 194286
-
Jim Grosbach authored
On darwin, when trying to create compact unwind info, a .cfi_cfa_def directive would case an llvm_unreachable() to be hit. Back off when we see this directive and generate the regular DWARF style eh_frame. rdar://15406518 llvm-svn: 194285
-
Lang Hames authored
llvm-svn: 194284
-
Lang Hames authored
Thanks to Eric Christopher for the tips on the appropriate way to do this. llvm-svn: 194282
-
Hal Finkel authored
LoopUnswitch's code simplification routine has logic to convert conditional branches into unconditional branches, after unswitching makes the condition constant, and then remove any blocks that renders dead. Unfortunately, this code is dead, currently broken, and furthermore, has never been alive (at least as far back at 2006). No functionality change intended. llvm-svn: 194277
-
Arnaud A. de Grandmaison authored
Temporarily revert my previous commit until I understand why it breaks 3 target tests. llvm-svn: 194272
-
Quentin Colombet authored
isPhysRegUsed if the unwind information is required. Indeed, the runtime may need a correct stack to be able to unwind the call. llvm-svn: 194271
-
Richard Barton authored
llvm-svn: 194270
-
Arnaud A. de Grandmaison authored
Based on discussions with Lang Hames and Jakob Stoklund Olesen at the hacker's lab, and in the light of upcoming work on the PBQP register allocator, it was though that CalcSpillWeights does not need to be a pass. This change will enable to customize / tune the spill weight computation depending on the allocator. Update the documentation style while there. No functionnal change. llvm-svn: 194269
-
Jordan Rose authored
Useful for tri-state maps: true, false, and "no data yet". llvm-svn: 194266
-
Tim Northover authored
ARM prologues usually look like: push {r7, lr} sub sp, sp, #4 If code size is extremely important, this can be optimised to the single instruction: push {r6, r7, lr} where we don't actually care about the contents of r6, but pushing it subtracts 4 from sp as a side effect. This should implement such a conversion, predicated on the "minsize" function attribute (-Oz) since I've yet to find any code it actually makes faster. llvm-svn: 194264
-
Artyom Skrobov authored
[ARM] Handling for coprocessor instructions that are undefined starting from ARMv8 (Thumb encodings) llvm-svn: 194263
-
Artyom Skrobov authored
llvm-svn: 194262
-
Artyom Skrobov authored
llvm-svn: 194261
-
Artyom Skrobov authored
llvm-svn: 194260
-
Arnaud A. de Grandmaison authored
llvm-svn: 194259
-
Zoran Jovanovic authored
llvm-svn: 194258
-
NAKAMURA Takumi authored
Linux cannot open directories with open(2), although cygwin and *bsd can. Motivation: The test, Object/directory.ll, had been failing with --target=cygwin on Linux. XFAIL was improper for host issues. llvm-svn: 194257
-
Matheus Almeida authored
The encoding was updated in MSA r1.07. llvm-svn: 194255
-
Artyom Skrobov authored
[ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings llvm-svn: 194253
-
Bill Wendling authored
llvm-svn: 194251
-
- Nov 07, 2013
-
-
David Majnemer authored
No additional test was needed, Other/constant-fold-gep.ll detects this just fine. llvm-svn: 194221
-