- Sep 25, 2013
-
-
Jordan Rose authored
Now that the CFG includes nodes for the destructors in a delete-expression, process them in the analyzer using the same common destructor interface currently used for local, member, and base destructors. Also, check for when the value is known to be null, in which case no destructor is actually run. This does not yet handle destructors for deleted /arrays/, which may need more CFG work. It also causes a slight regression in the location of double delete warnings; the double delete is detected at the destructor call, which is implicit, and so is reported on the first access within the destructor instead of at the 'delete' statement. This will be fixed soon. Patch by Karthik Bhat! llvm-svn: 191381
-
Rafael Espindola authored
llvm-svn: 191380
-
Rafael Espindola authored
They are cc1 options only, so the driver was ignoring them. llvm-svn: 191379
-
Ashok Thirumurthi authored
Cache and restore the frame-format, so that test_set_frame_format doesn't modify the default, as required for TestInferiorAssert.py. - Also fixes this test case to set/verify a non-default frame-format and explain the intent. llvm-svn: 191378
-
Rafael Espindola authored
It is a valid driver option (we have tests for that), so it should not be marked as NoDriverOption. No functionality change other than it showing in --help. llvm-svn: 191377
-
Rafael Espindola authored
llvm-svn: 191376
-
Daniel Jasper authored
Patch contributed by Aaron Wishnick. Thank you! llvm-svn: 191375
-
Evgeniy Stepanov authored
sigwait sigwaitinfo sigtimedwait sigemptyset sigfillset sigpending sigprocmask llvm-svn: 191374
-
Rafael Espindola authored
llvm-svn: 191373
-
Rafael Espindola authored
This makes sure we get the same behavior with all supported cmake versions. Once we support only versions >= 2.8.11 we can experiment with other values or just setting it for some binaries. Patch by Greg Bedwell. llvm-svn: 191372
-
Arnold Schwaighofer authored
Put them under a separate flag for experimentation. They are more likely to interfere with loop vectorization which happens later in the pass pipeline. llvm-svn: 191371
-
Benjamin Kramer authored
No intended functionality change. llvm-svn: 191370
-
Richard Sandiford authored
Another patch to avoid duplication of encoding information. Things like NILF, NILL and NILH are used as both 32-bit and 64-bit instructions. Here the 64-bit versions are defined as aliases of the 32-bit ones. llvm-svn: 191369
-
David Majnemer authored
The binutils assembler supports a mode called DOLLAR_DOT which treats the dollar sign token as a reference to the current program counter if the dollar sign doesn't precede a constant or identifier. This commit adds a new MCAsmInfo flag stating whether or not a given target supports this interpretation of the dollar sign token; by default, this flag is not enabled. Further, enable this flag for PPC. The system assembler for AIX and binutils both support using the dollar sign in this manner. This fixes PR17353. llvm-svn: 191368
-
Joerg Sonnenberger authored
llvm-svn: 191367
-
Richard Sandiford authored
Similar to r191364, but for calls. This patch also removes the shortening of BRASL to BRAS within a TU. Doing that was a bit controversial internally, since there's a strong expectation with the z assembler that WYWIWYG. llvm-svn: 191366
-
Richard Sandiford authored
Another patch to reduce the duplication of encoding information. Rather than define separate patterns for truncating 64-bit stores, use the 32-bit stores with a subreg. No behavioral changed intended. llvm-svn: 191365
-
Richard Sandiford authored
This is the first of a few patches to reduce the dupliation of encoding information. The return instruction is a normal BR in which one of the registers is fixed. llvm-svn: 191364
-
Richard Sandiford authored
When loading immediates into a GR32, the port prefered LHI, followed by LLILH or LLILL, followed by IILF. LHI and IILF are natural 32-bit operations, but LLILH and LLILL also clear the upper 32 bits of the register. This was represented as taking a 32-bit subreg of a 64-bit assignment. Using subregs for something as simple as a move immediate was probably a bad idea. Also, I have patches to add support for the high-word facility, and we don't want something like LLILH and LLILL to stop the high word of the same GPR from being used. This patch therefore uses LHI and IILF to begin with and adds a late machine-specific pass to use LLILH and LLILL if the other half of the register is not live. The high-word patches extend this behavior to IIHF, LLIHL and LLIHH. No behavioral change intended. llvm-svn: 191363
-
David Majnemer authored
llvm-svn: 191362
-
Evgeniy Stepanov authored
llvm-svn: 191361
-
NAKAMURA Takumi authored
StaticAnalyzer/Core/RegionStore.cpp: Prune one last "\param IsConst", as fixup to r191342. [-Wdocumentation] llvm-svn: 191360
-
Peter Collingbourne authored
llvm-svn: 191359
-
Alexey Samsonov authored
llvm-svn: 191358
-
Peter Collingbourne authored
This should fix the MSVC build. llvm-svn: 191357
-
Craig Topper authored
llvm-svn: 191356
-
Craig Topper authored
llvm-svn: 191355
-
Richard Smith authored
return type in C++1y mode. No functionality change intended. Extracted and tweaked from a patch by Faisal Vali! llvm-svn: 191354
-
Akira Hatanaka authored
llvm-svn: 191353
-
Akira Hatanaka authored
No intended functionality change. llvm-svn: 191352
-
Akira Hatanaka authored
No intended functionality change. llvm-svn: 191350
-
Quentin Colombet authored
PEI inserts a save/restore sequence for the link register, according to the information it gets from the MachineRegisterInfo. MachineRegisterInfo is populated by the VirtRegMap pass. This pass was not aware of noreturn calls and was registering the definitions of these calls the same way as regular operations. Modify VirtRegPass so that it does not set the isPhysRegUsed information for registers only defined by noreturn calls. The rational is that a noreturn call is the "last instruction" of the program (if it returns the behavior is undefined), so everything that is defined by it cannot be used and will not interfere with anything else. Therefore, it is pointless to account for then. llvm-svn: 191349
-
Andrew Trick authored
This is being disabled because it is no longer needed for performance. It is only used by postRAscheduler which is also planned for removal, and it is implemented with an out-dated view of register liveness. It consideres aliases instead of register units, assumes valid kill flags, and assumes implicit uses on partial register defs. Kill flags and implicit operands are error prone and impossible to verify. We should gradually eliminate dependence on them in the postRA phases. Targets that still benefit from this should move to the MI scheduler. If that doesn't solve the problem, then we should add a hook to regalloc to optimize reload placement. llvm-svn: 191348
-
Fariborz Jahanian authored
methods which look like getters but belong to known family of methods. // rdar://15044058 llvm-svn: 191347
-
Argyrios Kyrtzidis authored
Patch by Loïc Jaquemet! llvm-svn: 191346
-
Argyrios Kyrtzidis authored
Patch by Loïc Jaquemet! llvm-svn: 191345
-
Jim Grosbach authored
Give the symbol's name and disengage the enchanced crash reporting. llvm-svn: 191344
-
Peter Collingbourne authored
more reliably across platforms. Patch by Tom Roeder! llvm-svn: 191343
-
Anton Yartsev authored
[analyzer] This patch removes passing around of const-invalidation vs regular-invalidation info by passing around a datastructure that maps regions and symbols to the type of invalidation they experience. This simplifies the code and would allow to associate more different invalidation types in the future. With this patch things like preserving contents of regions (either hi- or low-level ones) or processing of the only top-level region can be implemented easily without passing around extra parameters. This patch is a first step towards adequate modeling of memcpy() by the CStringChecker checker and towards eliminating of majority of false-positives produced by the NewDeleteLeaks checker. llvm-svn: 191342
-
Rui Ueyama authored
This patch inverts the return value of these functions, so that they return "true" on success and "false" on failure. The meaning of boolean return value was mixed in LLD; for example, InputGraph::validate() returns true on success. With this patch they'll become consistent. CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1748 llvm-svn: 191341
-