- Sep 26, 2012
-
-
Bill Wendling authored
scalar-to-vector conversion that we cannot handle. For instance, when an invalid constraint is used in an inline asm statement. <rdar://problem/12284092> llvm-svn: 164662
-
Michael Liao authored
- Instead of embedding 'lock' into each mnemonic of atomic instructions except 'xchg', we teach X86 assembly printer to output 'lock' prefix similar to or consistent with code emitter. llvm-svn: 164659
-
Bill Wendling authored
scalar-to-vector conversion that we cannot handle. For instance, when an invalid constraint is used in an inline asm statement. <rdar://problem/12284092> llvm-svn: 164657
-
Michael Ilseman authored
Fixed issue with Release build. llvm-svn: 164654
-
Akira Hatanaka authored
llvm-svn: 164642
-
Nick Lewycky authored
only a missed optimization opportunity if the store is over-aligned, but a miscompile if the store's new type has a higher natural alignment than the memcpy did. Fixes PR13920! llvm-svn: 164641
-
Reed Kotler authored
llvm-svn: 164640
-
- Sep 25, 2012
-
-
Nick Lewycky authored
reason we were getting two of the same alloca is because of a memmove/memcpy which had the same alloca in both the src and dest. Now we detect that case directly. This has the same testcase as before, but fixes a clang test CodeGenObjC/exceptions.m which runs clang -O2. llvm-svn: 164636
-
Nick Lewycky authored
Chandler, it's not obvious that it's okay that this alloca gets into the list twice to begin with. Please review and see whether this is the fix you really want, but I wanted to get a fix checked in quickly. llvm-svn: 164634
-
Bill Wendling authored
llvm-svn: 164631
-
Bill Wendling authored
llvm-svn: 164629
-
Sebastian Pop authored
Provide interface in TargetLowering to set or get the minimum number of basic blocks whereby jump tables are generated for switch statements rather than an if sequence. getMinimumJumpTableEntries() defaults to 4. setMinimumJumpTableEntries() allows target configuration. This patch changes the default for the Hexagon architecture to 5 as it improves performance on some benchmarks. llvm-svn: 164628
-
Chad Rosier authored
llvm-svn: 164627
-
Michael Liao authored
- Turn on atomic6432.ll and add specific test case as well llvm-svn: 164616
-
Jim Grosbach authored
When a BL/BLX references a symbol in the same translation unit that is out of range, use an external relocation. The linker will use this to generate a branch island rather than a direct reference, allowing the relocation to resolve correctly. rdar://12359919 llvm-svn: 164615
-
Michael Ilseman authored
llvm-svn: 164614
-
Bob Wilson authored
llvm-svn: 164611
-
Chandler Carruth authored
to chains or cycles between PHIs and/or selects. Also add a couple of really nice test cases reduced from Kostya's reports in PR13905 and PR13906. Both are fixed by this patch. llvm-svn: 164596
-
Duncan Sands authored
Previously it was only be able to detect problems if the pointer was a numerical value (eg inttoptr i32 1 to i32*), but not if it was an alloca or globa. The reason was the use of ComputeMaskedBits: imagine you have "alloca i8, align 2", and ask ComputeMaskedBits what it knows about the bits of the alloca pointer. It can tell you that the bottom bit is known zero (due to align 2) but it can't tell you that bit 1 is known one. That's because the address could be an even multiple of 2 rather than an odd multiple, eg it might be a multiple of 4. Thus trying to use KnownOne is ineffective in the case of an alloca as it will never have any bits set. Instead look explicitly for constant offsets from allocas and globals. llvm-svn: 164595
-
Evan Cheng authored
Fix an illegal tailcall opt where the callee returns a double via xmm while caller returns x86_fp80 via st0. rdar://12229511 llvm-svn: 164588
-
Nico Weber authored
llvm-svn: 164587
-
Chandler Carruth authored
David (I think), but I would appreciate folks verifying that this fixes the big crasher. I'm still working on a reduced test case, but because this was causing problems I wanted to get the fix checked in quickly. llvm-svn: 164585
-
Nick Lewycky authored
it's not a dead store if that pointer is used. Whoops! llvm-svn: 164583
-
Jim Grosbach authored
rdar://9795790 llvm-svn: 164577
-
Nick Lewycky authored
declaration to use the same form as in the rest of the file. No functionality change. llvm-svn: 164576
-
Jim Grosbach authored
Even out-of-line jump tables can be in the code section, so mark them as data-regions for those targets which support the directives. rdar://12362871&12362974 llvm-svn: 164571
-
Chad Rosier authored
Also remove an unused argument. llvm-svn: 164567
-
Nick Lewycky authored
dead. llvm-svn: 164561
-
Nick Lewycky authored
No functionality change. llvm-svn: 164560
-
- Sep 24, 2012
-
-
Roman Divacky authored
store when handling byval arguments. Thus preventing reordering of the store with load with post-RA scheduler. llvm-svn: 164553
-
Chad Rosier authored
llvm-svn: 164548
-
Richard Osborne authored
This avoids a crash in visitAllocaInst when target data isn't available. llvm-svn: 164539
-
Chandler Carruth authored
Queue the fallout. ;] llvm-svn: 164480
-
Chandler Carruth authored
integer promotion analogous to vector promotion. When there is an integer alloca being accessed both as its integer type and as a narrower integer type, promote the narrower access to "insert" and "extract" the smaller integer from the larger one, and make the integer alloca a candidate for promotion. In the new formulation, we don't care about target legal integer or use thresholds to control things. Instead, we only perform this promotion to an integer type which the frontend has already emitted a load or store for. This bounds the scope and prevents optimization passes from coalescing larger and larger entities into a single integer. llvm-svn: 164479
-
- Sep 23, 2012
-
-
Anton Korobeynikov authored
Patch by Kai! llvm-svn: 164476
-
Chandler Carruth authored
across the uses of the alloca. It's entirely possible for negative numbers to come up here, and in some rare cases simply doing the 2's complement arithmetic isn't the correct decision. Notably, we can't zext the index of the GEP. The definition of GEP is that these offsets are sign extended or truncated to the size of the pointer, and then wrapping 2's complement arithmetic used. This patch fixes an issue that comes up with *no* input from the buildbots or bootstrap afaict. The only place where it manifested, disturbingly, is Clang's own regression test suite. A reduced and targeted collection of tests are added to cope with this. Note that I've tried to pin down the potential cases of overflow, but may have missed some cases. I've tried to add a few cases to test this, but its hard because LLVM has quite limited support for >64bit constructs. llvm-svn: 164475
-
Nick Lewycky authored
llvm-svn: 164474
-
Craig Topper authored
llvm-svn: 164471
-
- Sep 22, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 164459
-
NAKAMURA Takumi authored
llvm-svn: 164458
-